npm软件包安装在意外位置

时间:2019-01-07 04:04:08

标签: node.js npm

我最近创建了my first npm package,当我尝试使用npm install -g pre-commit-lint将其安装在运行macOS的计算机上时,得到以下输出:

/usr/local/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/bin/pc-lint -> /usr/local/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/pre-commit-lint/index.js + pre-commit-lint@1.0.1 updated 1 package in 1.457s

安装位置对我来说是非常意外的。

为什么将我的软件包安装在以下位置:

/usr/local/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/

代替:

/usr/local/lib/node_modules/

1 个答案:

答案 0 :(得分:1)

经过进一步研究,我发现了npm config ls -l命令,并在输出中找到了这一行:

prefix = "/usr/local/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node"

这似乎是造成奇怪路径的原因。

如何设置默认值,我不知道。我的同事的Mac和家用Linux笔记本电脑都将prefix设置为/usr/local。根据{{​​3}},这是大多数系统上的默认设置。在工作手提电脑的初期,我可能会无意间弄乱了一些东西。

为解决此问题,我运行了以下命令来覆盖默认的prefix值:

npm config set prefix "/usr/local"

然后我卸载并重新安装了我的软件包,二进制文件出现在:

/usr/local/bin/

代替:

/usr/local/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/lib/node_modules/node/bin/

现在一切都按预期进行。