簡體   English   中英

安裝在意外位置的 npm 包

[英]npm package installed in unexpected location

我最近創建了我的第一個 npm 包,當我嘗試使用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/

經過進一步研究,我找到了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 的prefix設置為/usr/local ,就像我的家用 linux 筆記本電腦一樣。 根據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/

現在一切都按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM