在小牛队更新后,Npm没有工作

时间:2014-09-05 20:26:09

标签: node.js macos terminal npm

在小牛队更新后,我在终端的npm没有工作。

node app.js效果很好并且可以运行我的应用,但是当我运行npm后,我得到了-bash: npm: command not found。我知道这个问题在此之前已被提出过:

Global installation with npm doesn't work after Mac OS X Mavericks updateHow do I install a module globally using npm?npm not working after reinstalling Mac OS X ,但没有一个答案解决了我的情况。

$ echo $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/mongodb/bin

2 个答案:

答案 0 :(得分:0)

你是如何安装node.js的?通常它与节点和npm捆绑在一起,两者都在同一目录中。我的建议是删除您当前的安装并执行以下操作。

安装nodejs和npm作为你自己不root用户执行这些命令(OSX / linux):

parent_dir=${HOME}/bin_xxxx  #  replace bin_xxx with something specific
                             #  to node release like bin_v0.10.31

mkdir ${parent_dir}

http://nodejs.org/download/

下载源代码
cd node-v0.xxxx

./configure   --prefix=${parent_dir}/nodejs

make -j8
make install

将其放入上面--prefix

定义的目录中
export PATH=${parent_dir}/nodejs/bin:$PATH

定义环境变量NODE_PATH,以便节点可以找到模块的dir npm install xxx会将新安装的模块放入curr目录中的dir:

export NODE_PATH=${parent_dir}/nodejs/lib/node_modules

执行上面的操作并使用语法:npm install -g some_cool_module 总是使用-g为全局,因此它被安装到dir $ NODE_PATH中 而不是你的$ PWD

nodejs install也为你提供了npm:

ls -la ${parent_dir}/nodejs/bin

答案 1 :(得分:0)

对于Debian,安装节点后请执行以下操作

curl -k -O -L https://npmjs.org/install.sh
ln -s /usr/bin/nodejs /usr/bin/node
sh install.sh