当我开始遇到麻烦时,我试图phonegap通过进行升级npm。长话短说,node_modules我的计算机上有两个目录。
phonegap
npm
node_modules
/usr/local/lib/node_modules /usr/local/share/npm/lib/node_modules
当我运行时npm upgrade -g phonegap,似乎会npm更新驻留在其中的软件包的副本/usr/local/lib/node_modules。但是,如果我which phonegap发现符号链接指向处的较早安装/usr/local/share/npm/lib/node_modules。
npm upgrade -g phonegap
/usr/local/lib/node_modules
which phonegap
/usr/local/share/npm/lib/node_modules
另外,当我尝试安装独立的软件包(例如)时express,文件会安装在/usr/local/lib/node_modules目录中, 但是在的任何位置都不会创建指向可执行文件的符号链接$PATH。
express
$PATH
两个问题:
优点:安装方法是否node会影响配置?有很多选择。
node
编辑 :我想通了,在我创建符号链接/usr/local/bin,但我.bash_profile是用设置/usr/local/share/npm/bin提前/usr/local/bin的我$PATH。我隐约记得在某个时候将该路径添加到我的个人资料中,但是我不确定为什么。
/usr/local/bin
.bash_profile
/usr/local/share/npm/bin
所以现在的问题变成了:我如何node_modules在计算机上最终得到两个不同的目录,为什么我要将我node_modules放在share/npm/lib子目录中而不是正确的目录中/usr/local/lib?
share/npm/lib
/usr/local/lib
/usr/local/lib/node_modules 是全局安装的节点模块的正确目录。
/usr/local/share/npm/lib/node_modules对我来说毫无意义。这里的一个问题是您很困惑,因为有两个目录称为 node_modules :
/usr/local/lib/node_modules /usr/local/lib/node_modules/npm/node_modules
/usr/local/lib/node_modules/npm/node_modules
后者似乎是Node附带的节点模块,例如,lodash当前者是我使用安装的Node模块时npm。
lodash