SunShinewyf/issue-blog

npm全局安装模块而提示找不到命令

SunShinewyf opened this issue · 4 comments

最近遇到一个问题,在一个webpack的项目中,当执行如下命令:

npm install webpack -g

然后使用webpack执行代码的时候,会提示webpack command not found,一脸懵逼,什么情况????
经过一番google之后,最终将问题定位在npm的全局安装目录的问题。

所以开始重装node,卸载和使用nvm重新安装node在此就不再赘述了,具体可戳这里,现在主要是记录一下在这其中踩到的坑

nvm command not found

当你在执行下面命令之后:

# vim .bash_profile后增加下面这两行
export NVM_DIR="$HOME/.nvm"
source $(brew --prefix nvm)/nvm.sh

然后再查看nvm --version的时候,会报错nvm command not found,这种情况是因为你的bash_profile还没激活,需要执行下面命令进行激活:

source .bash_profile

npm command not found

当你使用nvm安装完node之后,并且可以得到node安装的版本号,但是在执行npm -v的时候,会报错npm command not found,原本npm就是node里面自带的一个模块,最后会报这样的错误,简直是有点怀疑人生,然后又是一番google,内心挣扎到不行。。。。这是因为node安装有问题,重新执行如下命令进行安装:

brew update
brew uninstall node
brew install node
sudo brew postinstall node

然后再执行npm,可以发现可以了,惊喜+激动

webpack command not found

执行命令npm install webpack -g之后还是提示webpack命令找不到(心里一万头草泥马奔腾而过),为啥,然后开始改bash_profile里面的路径如下:

export NODE_PATH=$(npm prefix -g)/lib/node_modules
export NVM_DIR="$HOME/.nvm"
source $(brew --prefix nvm)/nvm.sh

并执行source .bash_profile使之生效。此时又报错了,错误如下:

nvm is not compatible with the npm config "prefix" option: currently set to "/Users/mac/~/.nvm/versions/node/v5.0.0"
Run `npm config delete prefix` or `nvm use --delete-prefix v5.0.0` to unset it.

这种说明npm config命令和nvm有冲突,你直接执行nvm use --delete-prefix v5.0.0就行

找不到该目录var cwd = process.cwd();

再上一步中再次全局安装webpack,并执行webpack之后,心塞地又报错了,错误如下:

node.js:289
      var cwd = process.cwd();
                  ^
 Error: No such file or directory
      at Function.resolveArgv0 (node.js:289:23)
      at startup (node.js:43:13)
      at node.js:448:3

想哭的心都有了,然后各种查找资料,终于找到了一种终极解决方案。

  • 首先将所有的命令行窗口都关掉
  • 执行如下命令
sudo npm cache clean -fsudo npm install -g n
  • 再次执行webpack就好了

写在最后

满脸的辛酸泪,最后看到webpack命令跑起来的时候,简直想随便拉个人亲一下(哈哈哈~~~)
只是记录一下过程,希望可以帮到有相同问题的人~~~

第一次安装成功后,查看npm,node,版本都是看的到的。
但重启后就找不到了。始终报npm: command not found
查看目录/Users/xx/下存在这2文件。
.npm
.nvm
去.bash_profile 里怎么配都不行,求解

@wl520a 是不是没有全局安装,或者配置 .bash_profile 之后是否激活了

全卸载安装就对了

謝謝分享 我差點也是要哭了...