我有一个问题,安装的全球节点模块和一切我在网上找说,解决的只是添加-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 prefix
或npm 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-cli
或gulp-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 -全球
- 在命令行中,在你的home目录下建立全球的安装目录:
mkdir ~/.npm-global
- 配置NPM使用新目录路径:
npm config set prefix '~/.npm-global'
- 在您的首选文本编辑器,打开或创建〜/ .profile文件,加入这一行:
export PATH=~/.npm-global/bin:$PATH
- 在命令行中,更新你的系统变量:
source ~/.profile
- 然后在全球安装程序包并测试一下吧! 例如:
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:
以下行添加到您的~/.bash_profile
export PATH="$HOME/.npm/bin:$PATH"
负载庆典简介
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