我最近创建了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/
答案 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/
现在一切都按预期进行。