无法从终端调用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】:

尽量不要将sudonpm 一起使用。如果可以,请卸载 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安装的全局包,尝试了一切的主要内容,如果未能解决你的问题,请参考以下文章

node.js 从入门到。。。

Node.js 简单使用

Node.js之包命令(npm和yarn)

NPM(node.js 包管理器)无法安装 tiddlywiki

npm 无法安装全局包?

Vue项目环境搭建及部分文件功能解释