大家在开发过程中是如何管理多个项目不同的 NodeJS 版本的?

2023-10-25 13:47:33 +08:00
 fancy2020

本地会开发多个不同的 NodeJS 项目,每个项目可能需要的 Node 版本不同,有的老项目还在用 10.xx ,有的要求 12.xx/14.xx/16.xx/18.xx 。

总之,每个项目都需要不同的 Node 版本。很多时候我都是在启动项目遇到报错了才会意识到要切换 Node 版本。

7381 次点击
所在节点    Node.js
94 条回复
ColdBird
2023-10-25 18:36:59 +08:00
nvm
auroraccc
2023-10-25 18:53:35 +08:00
volta ,不过和 pnpm 配合貌似有些问题
sn0wdr1am
2023-10-25 20:07:16 +08:00
beginor
2023-10-25 21:07:43 +08:00
pnpm 也是可以管理 node 的 https://pnpm.io/cli/env
treblex
2023-10-25 22:15:58 +08:00
source .env.sh 可以直接写在 npm 命令里
yechentide
2023-10-25 22:40:26 +08:00
fnm+1
zsh2517
2023-10-25 23:53:20 +08:00
除了楼上提到的那些之外,我说一下我自己的场景。目前 node18, 20 并存,具体用哪个版本写在了 CI 配置文件里面(因为一些原因有些升级不上去 20 ),找 GPT 写了个脚本 读取 CI 配置文件并且运行 nvm use xxx 。然后设置 alias ,叫做 autoenv 。
进到项目之后
$ autoenv
$ npm xxxx
就可以,习惯之后还挺省事的
kukat
2023-10-26 01:22:46 +08:00
rtx (asdf 的 rust clone )
one tool to rule them all
kukat
2023-10-26 01:24:17 +08:00
@kukat project based 版本可以 rtx local node@16 在项目根目录生成.tool_version 文件,以后会自动加载
Bingchunmoli
2023-10-26 01:40:46 +08:00
@fancy2020 webstorm 可以,自己的全局管理用的 scoop
ysmood
2023-10-26 02:39:53 +08:00
ysmood
2023-10-26 02:50:02 +08:00
fnm 不愿意支持 engine ,所以写了这个项目

https://github.com/Schniz/fnm/issues/39
dcsuibian
2023-10-26 03:24:33 +08:00
fnm+.node-version 文件就可以实现
iamqiwei
2023-10-26 03:43:26 +08:00
我的做法是全局的版本一直保持最新,用“export PATH=/D/Node/node-v14.21.1-win-x64:$PATH”给当前会话添加环境变量,就可以指定 node 版本了,缺点就是有时候会忘记加,还要记住不同项目使用的 node 版本,其实用 webstorm 就可以指定项目的 node 版本
zzerd
2023-10-26 06:55:00 +08:00
rtx 啊不但 node python golang 等其它的语言版本也能管理
LokiSharp
2023-10-26 07:58:31 +08:00
volta
yosoroAida
2023-10-26 08:26:05 +08:00
nvm
nijjba
2023-10-26 08:30:11 +08:00
用 asdf 的 nodejs 插件,好像可以自动切换 node 版本,它会自动读 .nvmrc 或 .node-version 文件匹配
nijjba
2023-10-26 08:31:48 +08:00
vZexc0m
2023-10-26 08:57:25 +08:00
直接用 webstorm 就行

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

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

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

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

© 2021 V2EX