全球节点模块未正确安装。 没有找到指令(Global Node modules not inst

2019-07-20 11:38发布

我有一个问题,安装的全球节点模块和一切我在网上找说,解决的只是添加-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

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

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

   create : myapp
   create : myapp/package.json
   create : myapp/app.js
... Builds app correctly

凡模块:

$ 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

在我的.bash_profile我有:

export PATH=/usr/local/bin:$PATH
export NODE_PATH=/usr/local/lib/node_modules:/usr/local/lib/node

我需要改变我的节点环境中下载到正确的文件夹? 有什么事不正确的连接? 我搞不清楚了..

谢谢!

其他规格:

$ node --version
v0.8.20
$ npm --version
1.2.11
$ brew --version
0.9.4
OSX Version 10.8.2

Answer 1:

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

欲了解更多信息,请参阅npm help npm

全球模式:NPM安装包到安装在前缀前缀/ lib目录/ node_modules和箱安装在前缀/箱。

你可以找到与安装前缀npm get prefixnpm config list | grep prefix npm config list | grep prefix



Answer 2:

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

您可以设置它像这样:

npm config set prefix /usr/local

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

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

编辑:请注意,我只是碰到这种又来了一个新的Mac我设置了,不得不做的过程在这里详细的计算器为好。



Answer 3:

从来没有安装任何东西NPM,通过sudo! 我有我自己的原因,但我只是试图让事情变得简单,并基于用户的,因为这是一个用户开发的世界,而不是每个人都有的root访问权限,以及根/须藤安装这样的事情似乎只是弄乱的东西开始用。 毕竟,所有的开发者应该能够遵循这些说明,不只是特权须藤用户。

这种特殊的系统是一个RHEL7通过SSH访问:

通常需要一个节点的各种版本,所以我用NVM https://github.com/creationix/nvm

因此,随着中说,我可以告诉你一个工作示例-g全球安装,使用NVM,NPM,而不是使用根节点的路径。

设置您的前缀.npm-packages ,如果它是不是已经。 (注意,那是一个连字符,而不是下划线)

nvm config ls
prefix = "/home/<yourusername>/.npm-packages"

然后调整你的〜/ .bash_profile中或者如果你喜欢的.bashrc 为什么和电文读出在这里 ,用以下信息。

#PATH EXPORTS
NODE_MODULES=$HOME/.npm                                          
NPM_PACKAGES=$HOME/.npm-packages/bin                           
export PATH=$PATH:$HOME/bin:$NODE_MODULES:$NPM_PACKAGES         

#NVM ENABLE                                                 
export NVM_DIR="$HOME/.nvm"                                   
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm 

这几乎涵盖了所有的路径。 对于例如,如果你安装了一口这样的npm install -g gulp它的符号链接~/.npm-packages/bin (注意那是一个连字符,而不是下划线)。 (无需gulp-cligulp-cl

你几乎可以替代/注释掉所有其他节点路径的出口。 你可以把这个路径信息下面你已经有了,安全的任何其他路径信息,如果没有它覆盖的东西。



Answer 4:

我的NPM找不到全局包为好。 我做了布拉德·帕克斯建议:

npm config set prefix /usr/local

后来我有一个EACCES权限错误(DONT'T使用sudo NPM安装-g)和固定它通过官方NPM文档: https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages -全球

  1. 在命令行中,在你的home目录下建立全球的安装目录:
 mkdir ~/.npm-global
  1. 配置NPM使用新目录路径:
 npm config set prefix '~/.npm-global'
  1. 在您的首选文本编辑器,打开或创建〜/ .profile文件,加入这一行:
 export PATH=~/.npm-global/bin:$PATH
  1. 在命令行中,更新你的系统变量:
 source ~/.profile
  1. 然后在全球安装程序包并测试一下吧! 例如:
npm install -g awsmobile-cli
awsmobile configure



Answer 5:

我的问题是缺少的二进制文件 ,因为在我的主目录的用户特定.npmrc文件有bin-links设置为false ,虽然default is true

万一这是你的问题,请确认所有.npmrc文件已设置为false。

然后重新安装所有模块将创建的二进制文件prefix ,以便您的PATH可以看到它们。



Answer 6:

在我的情况下,该NODE_PATH环境变量是空的。 检查是否是空阱

echo $NODE_PATH

如果NODE_PATH是空的。 然后改变〜/ .bash_profile中,并添加NODE_PATH

nano ~/.bash_profile
export NODE_PATH=`npm root -g`
source ~/.bash_profile

现在,重新安装新公共管理模块,并检查是否正在安装的路径npm root -g



Answer 7:

  1. 以下行添加到您的~/.bash_profile

     export PATH="$HOME/.npm/bin:$PATH" 
  2. 负载庆典简介

     bash -l 


Answer 8:

脚步

首先,删除节点:

 sudo rm -rf /usr/local/lib/node_modules/jitsu
 npm cache clear
 sudo npm install jitsu -g

二,创建.bash_rc:

 vi ~/.bash_rc

复制下面的项目并粘贴到文件,在步骤2中打开:

 [[ -s  ~/.bashrc ]] && source ~/.bashrc
 export PATH=/usr/local/share/npm/bin:$PATH

润柔术。 运行VI〜/ .bash_profile中,这是你应该看到:

 [[ -s  ~/.bashrc ]] && source ~/.bashrc
 export PATH=/usr/local/share/npm/bin:$PATH

 # {{{
 # Node Completion - Auto-generated, do not touch.
 shopt -s progcomp
 for f in $(command ls ~/.node-completion); do
   f="$HOME/.node-completion/$f"
   test -f "$f" && . "$f"
 done
 # }}}

我找到了答案,从这篇文章中删除节点: 柔术未能安装OSX [节点0.8.17和1.2.0 NPM] WTF



文章来源: Global Node modules not installing correctly. Command not found