全局节点模块无法正确安装.没有找到指令

im_*_*ton 67 terminal install node.js npm

我在安装全局节点模块时遇到问题,我在网上找到的所有内容都说解决方法只是添加-g.哪个不是问题.我认为这是一个链接问题或错误的目录问题.

这是我做的:

$ npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.3
...downloads correctly

$ express myapp
bash: express: command not found
Run Code Online (Sandbox Code Playgroud)

但是,当我运行直接链接位置来表达它的工作原理时:

   $ /usr/local/share/npm/bin/express myapp

   create : myapp
   create : myapp/package.json
   create : myapp/app.js
... Builds app correctly
Run Code Online (Sandbox Code Playgroud)

模块的位置是:

$ which node
/usr/local/bin/node
$ node -pe process.execPath
/usr/local/Cellar/node/0.8.20/bin/node
$ npm link express
/Users/bentonrr/Development/Personal/node_modules/express -> /usr/local/share/npm/lib/node_modules/express
Run Code Online (Sandbox Code Playgroud)

在我的.bash_profile中,我有:

export PATH=/usr/local/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node
Run Code Online (Sandbox Code Playgroud)

我是否需要更改我的节点环境才能下载到正确的文件夹?是不是正确连接的东西?我搞不清楚了..

谢谢!

其他规格:

$ node --version
v0.8.20
$ npm --version
1.2.11
$ brew --version
0.9.4
OSX Version 10.8.2
Run Code Online (Sandbox Code Playgroud)

Bra*_*rks 117

这可能意味着您的节点安装前缀不是您所期望的.

您可以这样设置:

npm config set prefix /usr/local

然后尝试npm install -g再次运行,它应该工作.在Mac上为我工作,解决方案来自这个网站:

http://webbb.be/blog/command-not-found-node-npm/

编辑:请注意,我刚刚在我正在设置的新Mac上遇到过这个问题,并且还必须在stackoverflow上详细介绍此过程.

  • 我花了几个月的时间来解决这个问题,这是我见过的唯一能解决这个问题的答案!非常感谢你. (3认同)

Tim*_*ith 52

添加/usr/local/share/npm/bin到您的PATH(例如,在.bashrc).

有关详细信息,请参阅npm help npm:

全局模式:npm将软件包安装在前缀/ lib/node_modules的安装前缀中,并且bin安装在前缀/ bin中.

您可以使用npm get prefix或找到安装前缀npm config list | grep prefix.


Vic*_*nte 13

我的 npm 也找不到全局包。我做了布拉德帕克斯的建议:

npm config set prefix /usr/local
Run Code Online (Sandbox Code Playgroud)

然后我得到一个 EACCES 权限错误(不要使用sudo npm install -g <package>)并通过官方 npm 文档修复它:https ://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

  1. 在命令行上,在您的主目录中,为全局安装创建一个目录:
 mkdir ~/.npm-global
Run Code Online (Sandbox Code Playgroud)
  1. 配置 npm 以使用新的目录路径:
 npm config set prefix '~/.npm-global'
Run Code Online (Sandbox Code Playgroud)
  1. 在您首选的文本编辑器中,打开或创建一个 ~/.profile 文件并添加以下行:
 export PATH=~/.npm-global/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
  1. 在命令行上,更新您的系统变量:
 source ~/.profile
Run Code Online (Sandbox Code Playgroud)
  1. 然后全局安装一个包并测试它!例如:
npm install -g awsmobile-cli
awsmobile configure

Run Code Online (Sandbox Code Playgroud)


Ade*_*nde 9

对于 Windows 用户

将其添加到您的路径: “%AppData%\npm”


小智 6

就我而言,NODE_PATH环境变量为空。检查是否为空-

echo $NODE_PATH
Run Code Online (Sandbox Code Playgroud)

如果NODE_PATH为空。然后更改〜/ .bash_profile并添加NODE_PATH

nano ~/.bash_profile
export NODE_PATH=`npm root -g`
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

现在再次安装npm模块,并检查路径上是否已安装该模块 npm root -g