Open
Description
If you use emacs in CYGWIN and nodejs installed by WIN installer, when you use tern, you'll receive a message like this:
Request failed: Could not start Tern server
module.js:559
throw err;
^
Error: Cannot find module 'C:\cygdrive\C\Users***\AppData\Roaming\npm\node_modules\tern\bin\tern'
at Function.Module._resolveFilename (module.js:557:15)
at Function.Module._load (module.js:484:25)
at Function.Module.runMain (module.js:703:10)
at startup (bootstrap_node.js:193:16)
at bootstrap_node.js:660:3
Because in cygwin, if you use full name to start a nodejs script,
nodejs will add prefix "C:" to the argument
Temporary Solution:
(defvar tern-command
(let* ((script-file (or load-file-name
(and (boundp 'bytecomp-filename) bytecomp-filename)
buffer-file-name))
(bin-file (expand-file-name "../bin/tern" (file-name-directory (file-truename script-file)))))
(if (file-exists-p bin-file)
(if (eq system-type 'windows-nt) (list "node" bin-file)
(if (eq system-type 'cygwin) (list "tern") ★★★★★★★★★★★When using cygwin, make tern-command be "tern"★★★★★★★★★★★
(list bin-file)))
(list "tern")))