我最近创建了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.1updated 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/
最佳答案
经过进一步研究,我发现了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
。根据npm docs,这是大多数系统上的默认设置。在工作笔记本电脑的初期,我可能会无意间弄乱了一些东西。
要解决此问题,我运行以下命令来覆盖默认的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/
现在一切都按预期进行。
关于node.js - npm软件包安装在意外位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54068431/