[求解决办法]每次使用 nvm 切换 node 版本后都需要重新处理 npm yarn 找不到的问题?

2021-04-16 09:54:17 +08:00
 palmers
对前端知识一知半解,网上也没有找到有用的方法, 来这里请教大家是如何解决的? 谢谢了
3547 次点击
所在节点    Node.js
13 条回复
ccccccc
2021-04-16 09:58:14 +08:00
这是 nvm 的 feature,不过你每个版本都安装过下次再切换应该就不用重新安装的了
marcong95
2021-04-16 09:59:09 +08:00
会不会是由于国内奇妙的网络环境你在 nvm install 的时候其实只装了 node 没装 npm

我在用的 nvm-windows 是之前也试过这问题,nvm config 里可以设置 NODE_MIRROR 和 NPM_MIRROR,改成淘宝的看看?或者直接挂代理用官方源
gqbre
2021-04-16 10:00:24 +08:00
每个 node 版本都是独立的,全局安装的 npm 包也互相独立。
你可以在安装别的版本的时候使用这个参数 `--reinstall-packages-from=current`,它会把当前 node 版本安装的全局 npm 包一并安装到新版本 node 环境里
Eg.
```
nvm install --lts --reinstall-packages-from=current
```
Chingim
2021-04-16 10:03:31 +08:00
只在 nvm-windows 遇到过这个问题, macOS 一直都很正常

https://github.com/coreybutler/nvm-windows/issues/456
palmers
2021-04-16 11:36:32 +08:00
@ccccccc 并不是, 我切换回来依然找不到 而且这样切换后 类似 webstorm 的 local terminal 无法识别 nodejs 无法使用 npm yarn
palmers
2021-04-16 11:38:15 +08:00
@marcong95 嗯 这个我在网上也查询到了 我也设置了源为淘宝镜像 node 和 npm 都设置了
palmers
2021-04-16 11:39:51 +08:00
@gqbre 好 我试试这方法 谢谢了 现在我把 yarn 全局安装了 但是在 webstorm 的本地 terminal 无法使用命令 捣鼓了好久也没有配置好 现在只能在外面的 shell 中运行 yarn 和 npm 命令
0es
2021-04-16 11:59:19 +08:00
vim ~/.bash_profile

添加
```
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
```
重启 terminal
leoleozhu
2021-04-16 12:04:46 +08:00
npm 应该是装完 node 版本后就有的。
yarn 可以加到 default package 中。

➜ ~ cat .nvm/default-packages
yarn
@vue/cli
otakustay
2021-04-16 13:10:20 +08:00
不用 npm 装 yarn 就能解决了,比如用 brew 装……
palmers
2021-04-16 14:01:07 +08:00
@0es 😄 然而 我工作系统是 windows
palmers
2021-04-16 14:03:59 +08:00
@leoleozhu 嗯 是的 在 node_modules 中, 网上说因为镜像原因 安装 node npm 安装不成功所以找不到 npm 在对应目录确实只有 node.exe , 然后我卸载后 设置淘宝源 然后安装好了 等我下次切换回来后 依然找不到 npm 我现在是直接在系统级安装了 yarn 但是在 webstorm 自带的 terminal 中就不方便了
palmers
2021-04-16 14:04:35 +08:00
@otakustay 嗯 我现在就全局安装 yarn 然后在外面的终端使用构建和本地启动

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/771011

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX