我比平時更加謹慎,因為我npm對過去的行為感到困惑。我在Mac上,并通過安裝的node.js brew install node。現在我想jslint.js在命令行上運行作為命令,jslint我發現完成此操作的規范方法是sudo npm install -g jslint使用此輸出成功運行:$ sudo npm install -g jslintnpm http GET https://registry.npmjs.org/jslintnpm http 200 https://registry.npmjs.org/jslintnpm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgznpm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgznpm http GET https://registry.npmjs.org/noptnpm http 200 https://registry.npmjs.org/noptnpm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgznpm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgznpm http GET https://registry.npmjs.org/abbrevnpm http 200 https://registry.npmjs.org/abbrevnpm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgznpm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/bin/[email protected] /usr/local/share/npm/lib/node_modules/jslint└── [email protected] ([email protected])后來$ jslint ply.jszsh: command not found: jslint由于/usr/local/share/npm/bin沒有在我的$PATH。1)為什么沒有brew安裝npm bin路徑的全局路徑?也許它確實如此,但有些東西zsh確實弄亂了它。我可以在哪里找到它?2)我應該這樣做嗎?(附加:/usr/local/share/npm/bin到$PATH我底部的導出~/.zshrc)看起來這不是正確的方法,因為如果我稍后安裝其他東西(使用Homebrew或其他東西),我將需要將它附加到我的zsh啟動腳本來設置路徑。我想在這個特定的例子中,這只是一個問題,即npm install -g沒有在正確的位置(如果/usr/local/bin可能)制作正確的符號鏈接。我想我要做的是手動/usr/local/bin為我遇到問題的程序內部構建符號鏈接,它應該足夠我的目的。編輯:我在2019年更新了這個,因為這個老問題很受歡迎,但現在已經過時了我的個人工作流程以及如何最好地安裝節點和管理其各種依賴項。我的個人工作流程現在使用從nodejs.org獲得的安裝程序在系統上安裝節點。我實際上比自制軟件包本身更信任它,因為它最了解如何管理文件。如果要將系統節點從8.10更改為10.15,無論是在Mac還是Windows上,只需從nodejs.org為您的操作系統下載安裝程序10.15。根據我的經驗,嘗試升級通過自制軟件安裝的節點一直被證明是一種更難的方法。另外,最重要的一點是,我在上面的jslint示例中顯示的sudo的使用是非常不鼓勵的; 我相當確定不應該使用超級用戶以任何方式安裝或交互自制程序包。它不應該是必要的,并將導致文件許可頭痛!此外,我推薦ESLint而不是jslint,并且多年來沒有使用過jslint。
3 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
擴展你PATH
的:
這不是一個可怕的想法。話雖如此,你不應該這樣做。
運行這個:
npm config get prefix
OS X上的默認值是/usr/local
,這意味著npm將符號鏈接到二進制文件中/usr/local/bin
,這應該已經存在PATH
(特別是如果你使用的是Homebrew)。
所以:
npm config set prefix /usr/local
如果它是別的東西,并且不要
sudo
與npm一起使用!根據jslint文檔,你應該能夠做到npm install
這一點。
如果您將npm安裝為sudo(sudo brew install
),請嘗試使用plain ol'重新安裝它brew install
。Homebrew應該幫助你保持sudo
自由。

波斯汪
TA貢獻1811條經驗 獲得超4個贊
我使用brew,前綴已經設置為:
$ npm config get prefix
/Users/[user]/.node
我注意到bin和lib文件夾是root所有,這阻止了通常的非sudo安裝,所以我將它們重新擁有給用戶
$ cd /Users/[user]/.node
$ chown -R [user]:[group] lib
$ chown -R [user]:[group] bin
然后我剛剛添加了路徑到我的.bash_profile,它位于/ Users / [user]
PATH=$PATH:~/.node/bin
- 3 回答
- 0 關注
- 857 瀏覽
添加回答
舉報
0/150
提交
取消