我之前使用homebrew 安装过node,应该是在去年吧 然后使用npm 安装了hexo,路径是在 /usr/local/lib/node_modules/hexo-cli
前不久更新了osx,发现node有点问题,就用homebrew重新安装了 然后今天使用hexo的时候发现也有问题了,于是乎想重新安装hexo 但是问题来了,无法卸载旧版本的hexo : $ sudo npm uninstall hexo-cli -g 提示 /usr/local/Caller/node/{version}/lib/node_modules 下找不到 hexo-cli 当然找不到了,因为我之前是安装在 /usr/local/lib/node_modules 下的
然后我尝试安装 hexo: $ sudo npm install hexo-cli -g 可以安装成功,但是安装路径是 /usr/local/Caller/node/{version}/lib/node_modules 我尝试使用hexo 的一些命令,发现还是报之前的错误,也就是说可能还是执行了旧版本的hexo
我想造成此问题的原因可能是homebrew 更改了node 的安装路径 卸载掉使用homebrew 安装的node 来使用pkg 安装或许能解决此问题 但是我并不想这么做,因为我已经习惯了用homebrew 来管理这些工具 请教:我该如何优雅地解决这个问题?
希望各位给一些好的意见,非常感谢。
用nvm或n去装
直接下.pkg啊,打包得已经很好了,省去不必要的麻烦。
@i5ting 非常感谢你的回复,目前习惯了用homebrew,所有没有想过换其它的方式来安装。
@flamingtop 非常感谢你的回复,我尝试了下使用pkg 来安装,确实能解决此问题,但我更喜欢用homebrew来解决问题。
@megadron why?
@flamingtop homebrew 用了两年了,习惯了。
@megadron ^-^
node相关的工具之类的能用node生态链解决就用node生态链,homebrew是装系统开发工具的,比如nginx,mysql,mongodb你可以用homebrew装
@megadron 不是不推荐你用brew,但有一个问题,node是版本帝。。。伤不起的
首先用which命令查看你的老版本的hexo安装位置,以我的为例:
which hexo -> /usr/local/bin/hexo
删除软链 rm /usr/local/bin/hexo
如果想删除源文件的话就
-> ll /usr/local/bin/hexo
-> lrwxr-xr-x 1 xxx xxx 37B 1 14 17:07 /usr/local/bin/hexo -> ../lib/node_modules/hexo-cli/bin/hexo
找到源文件 /usr/local/lib/node_modules/hexo-cli
文件夹删掉,再重新安装hexo即可
另homebrew也可以管理node版本的
如果你的/usr/local/Caller/node/文件夹下有多个node版本的话可以使用 brew switch node 版本号
切换版本,如果你安装的node不在一个文件夹下的话,可以先brew unlink node4-lts
删除老版本的node软链,再用brew link node5
就可以切换到新版本
这里的node4-lts、node5
都是homebrew中node的formula name,可以使用brew search node
查看可用node formula
@i5ting 之前也挺好的,就最近一次更新才出问题。
@artisan 暂时先用pkg安装了,问题已解决。谢谢。
@FoghostCn 你好,感谢你的回复。 homebrew 切换版本这个我清楚,目前我的电脑中就装了一个版本的node。 问题是使用homebrew 安装了新版本的node 后,node_modules 全局路径 由 /usr/local/lib/node_modules 变更到了 /usr/local/Caller/node/{version}/lib/node_modules 我使用 $ npm uninstall hexo-cli -g 命令 只在变更后的路径里查找 hexo-cli 包 但是我使用 $ hexo s 命令又调用了变更前的路径中的 hexo 目前我暂时将homebrew 安装的node 删除了,然后使用pkg 安装了node 解决了这个问题。
这个问题就到此结束吧,非常感谢各位的回答。
我都是下载bin自己link的
把环境变量改到Caller下面就好了,把原来的node path删了
来自酷炫的 CNodeMD
我也遇到过homebrew安装的node在webpack报错,结论就是,卸载node然后实用nvm 自豪地采用 CNodeJS ionic
homebrew 装 node 以及使用 npm 的时候不一定需要 sudo ,把 sudo 的删除掉,用非 sudo 的方式装一次。推荐 node4-lts 然后再 npm i -g npm 更新下 npm 。个人的经验是 node4-lts 会稳定些,5/6 我经常遇到内存占用和cpu占用过高的问题。
直接删了homebrew的,然后用nvm 包治百病 From Noder