WTF 不知道为啥升级Node导致了npm用不了了

悲剧的起源还是来自于最近折腾的Hexo

hexo-wordcount

悲剧的开始是之前在安装hexo-wordcount的时候一直给我说Error: Unable to call 'wordcount', which is undefined or falsey就以为是这个插件安装的时候的问题,在反复安装 卸载 安装 卸载*n

难道是nunjucks转义出问题了?

非法字符又去修改nunjucks中的转义文件src/lib.js完全是在乱弄。

难道是npm出问题了?

结果还是不行索性重装了npm

1
curl -0 -L http://npmjs.org/install.sh | sudo sh

欲哭无泪的感觉一样还是不行,现在到好了npm -v都不行了。可是尼玛明明node全家桶已经安装好了啊。
于是which npm查看尼玛 npm木有了。
现在才想起来Node全家桶是拿Brew装的哦
如果我再手动安装肯定会有冲突我这不是在脑残是什么.

难道是Node版本不匹配?

那么就reinstall node 到最新版吧很简单

1
2
3
> node -v
v10.6.0
brew reisntall node

肯定没问题撒,老司机出马安个软件还会有问题吗?结果悲剧又发生了…
安装完之后告诉我说需要brew postinstall node
WHT

Permission denied @ rb_sysopen - /usr/local/lib/node_modules/npm/.npmignore
/usr/local/lib/node_modules

1
2
3
4
5
6
drwxr-xr-x   9 codewalkertes  admin   288B Nov 23  2017 cnpm
drwxr-xr-x 9 codewalkertes admin 288B Nov 23 2017 express
drwxr-xr-x 9 codewalkertes admin 288B Nov 23 2017 grunt-cli
drwxr-xr-x 16 codewalkertes admin 512B Jul 13 17:58 hexo-cli
drwxr-xr-x 7 codewalkertes admin 224B Jul 14 15:59 n
drwxr-xr-x 25 root admin 800B Jul 14 16:07 npm

看吧自己种下的恶果还是要自己吃下去才行。都是因为之前sudo安装造成的。不怕生命还是在于折腾把虽然这都三十好几了.

1
sudo chown -R codewalkertes npm

Voilà

1
2
> npm -v
6.1.0

总结

遇到问题了还是要想办法debug, 这次主要原因还是因为手动安装和Brew安装起了冲突所致。
总结嘛吃一堑长一智,不过有时候真是也因为记性的原因或者现代软件包管理的原因太过于复杂了。