今天在例行检查清理 npm package 时遇到了狗血的npm ERR! extraneous
问题:
|
|
索性来个彻底的清理:
- Global packages中,除了
npm
package,其它的package先全部删除 - 安装
cnpm
,替代npm
(你懂的),然后安装回所需的Global packages
|
|
根据淘宝NPM镜像(https://npm.taobao.org/)安装指导,安装`cnpm`:
|
|
原因分析
本地的node.js是使用Homebrew安装的,由于node版本更新,导致一些安装在global的package出现extraneous问题。修复方式是重新安装(或更新)有问题的package。
!!!此处敲黑板!!!
由于Homebrew管理的node会经常升级更新,并且cnpm
默认会将package安装到当前运行版本的node安装文件夹之中,这个默认行为会在node再次升级后导致已安装的全局package失效。因此,我们需要手动修改npm
的prefix
设置。通过修改~/.cnpmrc
,增加如下一行记录:
|
|
此时检查cnpm的配置会发现prefix
的默认值已经被覆盖:
|
|