刚开始使用 spacemacs
的时候就有这个问题, 当时没太在意.
后来问题解决的差不多的时候, 终于轮到它了. 因为前些天使用 Linux 系统反而没有这个问题了, 然后 Mac 还是存在的.
官网说的只有 Windows 才会有这个问题, 而 Mac 上出现这个问题的原因是因为我使用了 nvm
. 好大的坑.
使用 nvm
安装的包位置和 npm
是不一样的, 而且我不知道是我操作有误还是别的原因, 总之, 即使把 nvm
下的 tern
的路径给添加进去还是不生效. Linux 上没这问题就是因为我用的 npm
安装的 tern
好用的姿势是把 nvm
删掉, 用 npm
装上 tern
. 其实如果你从命令行去使用 emacs
你会发现根本没有这个问题, 这里顺便提一下, path
和 exec-path
的区别其实就是命令行的环境变量路径和 GUI 的变量路径. 所以, 如果你不想删除 nvm
, 还有一个办法. 从你的命令行去启动它:
open ~/Application/Emacs.app
, 这样做的话你启动的 GUI 就会继承命令行里的 path
, 也可以正常使用了.
2 个赞
别的办法就没试过了. 如果也能解决可以写在楼下, 省的大家到处找
我在mac上有相同的问题,不知道会对使用带来什么影响?
因为没怎么做过前端,所以才知道tern是一个java的代码分析工具,我用 npm install -g tern 装上tern后,就没有这个警告了。
Never see it if it’s just a warning …
1 个赞
如果是直接使用nodejs安装的那个npm是直接安装即可, 如果使用了nvm即使安装了tern也不会生效. 解决nvm的办法我没找~ 反正把nvm去掉再安装tern是没问题的. 没有tern你会失去很多智能提示.
英吹斯汀,我是用 yarn 全局安装的 tern,从 GUI 启动的话也会看到这句 warning,但有意思的是不会影响 tern 正常工作。
然后我试了试 terminal 启动 emacs,warning 的确消失了,不过启动时间也增加了 1s 左右。
yellow
12
这个是因为 terminal
可以识别 nvm
或者 yarn
安装的默认路径, 但是GUI
不能识别. GUI
里面好像要特别设置一下, 我没折腾. 直接 npm
安装的就可以了.
问题是 yarn安装的 我也放到PATH里面了 而且还 ln 到了 /usr/local/bin 还是有warning
1 个赞
emacs并不能识别 shell中的nvm设置的环境变量,需要借助nvm.el, 在emacs中(nvm-use “xxx”)来设置
mac中遇到了这个问题,卸载nvm重新安装依旧报错,我用下面的方式解决了
在 .spacemacs 中的 user/init设置:
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
(setq exec-path (append exec-path '("/usr/local/bin")))
2 个赞
emacs version: 26.3
在安装有nvm的情况下npm i tern -g
之后,Emacs GUI下不再报错。