无法从终端调用Node js npm安装的全局包,尝试了一切
Posted
技术标签:
【中文标题】无法从终端调用Node js npm安装的全局包,尝试了一切【英文标题】:Node js npm installed global package cannot be called from terminal, tried everything 【发布时间】:2016-12-17 00:18:25 【问题描述】:我已经在我的 MAC 上全局安装了一些 node js
软件包。
我在终端的根目录下运行$sudo npm install -g jshint
/Users/apple/
。
我尝试运行$jshint myfile.js
,但只收到此错误:
-bash: jshint: command not found
我什么都试过了:
-
已添加
NODE_PATH="/Users/apple/npm-global/lib/node_modules"
已更改$sudo chown apple /Users/apple/npm-global/
已更改$sudo chown apple /Users/apple
已更改$sudo chown apple /Users/apple/Tutorial/Nodejs/myfile.js
有什么想法吗?提前致谢!
编辑 --------------------------------------
所以我使用 brew 重新安装了 node js,并且我遵循了所有默认文件夹 usr/local/
,但仍然 $npm -g ls shows /usr/local/lib
并且我的 jshint 包已成功安装在 /usr/local/lib
中,运行 $jshint, "-bash: jshint: command not found"...
【问题讨论】:
是否找到其他节点包? @Jordan S 不,只有 $node 有效... 【参考方案1】:运行以下命令查看全局库的安装位置
npm list -g
【讨论】:
结果是:/Users/apple/npm-global/lib【参考方案2】:尽量不要将sudo
与npm
一起使用。如果可以,请卸载 npm 并使用不带 sudo 的简单 brew install
重新安装。不过,如果您不想使用 Homebrew,npm 有一个 guide 来解决此类问题。
npm config get prefix
会给你 npm 的目录。如果不是 /usr/local(macOS 上的默认值),请更改它:
npm config set prefix /usr/local
最终,如果对您没有任何帮助,您可以尝试将chown
npm 的文件夹发送给您的用户。
编辑:如果要将路径 /Users/apple/npm-global
保留为默认 npm 路径,则必须将其添加到 $PATH
全局变量中。
vi ~/.bash_profile
附加此命令:export PATH=$PATH:/Users/apple/npm-global
,然后确保保存文件。
运行此命令以立即应用更改:source ~/.bash_profile
最后,验证你的路径是否添加成功:echo $PATH
【讨论】:
运行 $npm config get 前缀,结果是: /Users/apple/npm-global 我希望它是 /Users/apple/npm-global 实际上,我还能拥有 /Users/apple /npm-global 并让它工作?? 你试过chown吗?sudo chown apple: /Users/apple/npm-global
试过 $sudo chown apple: /Users/apple/npm-global,还是 -bash: jshint: command not found
另外,显然要确保在 yourPATH
全局变量中指定了这个目录。
使用自制软件重新安装节点,运行节点命令正常,仍然无法运行 jshint...以上是关于无法从终端调用Node js npm安装的全局包,尝试了一切的主要内容,如果未能解决你的问题,请参考以下文章