我运行npm install -g pm2
,但是当我运行pm2时,出现错误:
zsh:找不到命令:pm2
我检查了/usr/local/lib/node_modules
,发现pm2不存在。
我运行npm list -g
,发现pm2已安装在/Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules
但是很久以前,我通过运行rm -fr /Users/langqiu/.nvm/
删除了nvm并删除了nvm添加到我的〜/ .bash_profile中的内容
我再次安装了nvm,然后运行以下命令,但是npm -g仍然安装在错误的位置。
该如何解决?
☁ ~ nvm ls
v8.14.0
-> system
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v8.14.0) (default)
stable -> 8.14 (-> v8.14.0) (default)
nvm_list_aliases:36: no matches found: /Users/langqiu/.nvm/alias/lts/*
☁ ~ nvm use system
Now using system version of node: v12.13.0 (npm v6.12.0)
☁ ~ npm install -g pm2
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2 -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2-docker -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2-docker
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2-runtime -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2-runtime
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2-dev -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2-dev
+ pm2@4.1.2
updated 1 package in 7.938s
☁ ~ which pm2
pm2 not found
我做了这些,但是仍然不能解决问题
☁ ~ npm config --global set prefix /usr/local
☁ ~ npm install -g pm2
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2-dev -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2-dev
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2 -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2-docker -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2-docker
/Users/langqiu/.nvm/versions/node/v8.14.0/bin/pm2-runtime -> /Users/langqiu/.nvm/versions/node/v8.14.0/lib/node_modules/pm2/bin/pm2-runtime
+ pm2@4.1.2
☁ ~ pm2
zsh: command not found: pm2
---更新----
有了答案,我终于解决了。是〜/ .npmrc设置的b / c
☁ ~ cat ~/.npmrc
registry=https://registry.npm.taobao.org/
prefix=/Users/langqiu/.nvm/versions/node/v8.14.0
但是为什么运行npm config --global set prefix /usr/local
不能解决该问题?
答案 0 :(得分:1)
每npm docs,只需npm config --global set prefix /usr/local
答案 1 :(得分:0)
我通过添加新版本的节点解决了相同的问题。
这是我的工作流程供参考:
问题:
$ nvm ls
-> system
iojs -> N/A (default)
node -> stable (-> N/A) (default)
unstable -> N/A (default)
nvm_list_aliases:36: no matches found: ~/.nvm/alias/lts/*
添加最新的npm版本
$ nvm install-latest-npm
Downloading and installing node v6.14.4...
Downloading https://nodejs.org/dist/v6.14.4/node-v6.14.4-darwin-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v6.14.4 (npm v3.10.10)
Creating default alias: default -> v6.14.4
设置节点版本:
$ nvm use default
Now using node v6.14.4 (npm v3.10.10)
测试我现在正在使用最新版本的节点:
$nvm current
v6.14.4
测试解决方案是否有效
$ nvm ls
-> v6.14.4
system
default -> v6.14.4
node -> stable (-> v6.14.4) (default)
stable -> 6.14 (-> v6.14.4) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.21.0 (-> N/A)
lts/erbium -> v12.18.1 (-> N/A)