大家在开发过程中是如何管理多个项目不同的 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 条回复
ultimate42
2023-10-25 14:42:29 +08:00
我用 fnm 跨平台 项目中创建一个.node-version 文件 里面写个 14/16/18 的版本号就能自动切换 node 版本了
Chingim
2023-10-25 14:42:43 +08:00
项目根目录放.nvmrc
cd 进去自动切
wu67
2023-10-25 14:52:24 +08:00
为什么不试试 docker 呢
xzr97
2023-10-25 15:16:40 +08:00
mac 用 n 指令 window 用 nvm
renmu
2023-10-25 15:17:54 +08:00
fnm ,支持 win 下自动切换
can2421
2023-10-25 16:05:58 +08:00
试了一下#18 的方法, 不知道为什么执行 nvm use 的时候显示 Invalid version 。看到 https://blog.csdn.net/weixin_49230250/article/details/131771608#nvm%20use%20%E6%97%A0%E6%95%88%E6%9C%80%E7%BB%88%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88 这个可行。
fancy2020
2023-10-25 16:18:28 +08:00
@mMartin
谢谢,有时间研究一下。

想要一个侵入性比较小的方案,记的之前写 Python 的时候用 venv 还挺方便的。不知道 Node 有没有类似的
ganbuliao
2023-10-25 16:19:07 +08:00
n
thtznet
2023-10-25 16:22:51 +08:00
用后端的眼光来看前端的工程化做得真是一言难尽,这种库/框架的多版本共存在后端看来根本就不是问题,前端的生态整得真复杂。
Corybyte
2023-10-25 16:24:11 +08:00
有一个 npm install n -g
lifesimple
2023-10-25 16:36:31 +08:00
windows nvm
macos n
iulo
2023-10-25 16:38:22 +08:00
@fancy2020 #15 volta 现在处于没人维护的状态,有段时间没更新了。volta 的想法很好,内部要做很多的 dirty work ,我自己实际用起来和新工具链的配合还有问题,例如 pnpm 目前也没很好的支持,pnpm 本身也无意为 volta 适配。最近我从 volta 迁移出来了,用 fnm 来管理 node ,简单直观
TsubasaHanekaw
2023-10-25 16:42:46 +08:00
直接放在 wsl 的容器里开发.得了
fancy2020
2023-10-25 16:43:55 +08:00
@iulo

感谢提醒,看了下确实 Volta 的最近提交已经是 4 月份了。另外,刚才安装简单试了一下,它还是会在 package.json 里添加字段的,对工作中团队使用的话会有点侵入性。

fnm 看起来也不错,有时间试试
xipuxiaoyehua
2023-10-25 16:46:32 +08:00
nix flake
wonderfulcxm
2023-10-25 16:47:50 +08:00
docker
Donahue
2023-10-25 16:48:57 +08:00
@thtznet 我也觉得,前端各种黑魔法,各种工具,复杂的不行。
MonkeyD1
2023-10-25 17:08:50 +08:00
lilei2023
2023-10-25 17:20:13 +08:00
nvm. n 等等都可以
darksword21
2023-10-25 18:36:09 +08:00
nix flake

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

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

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

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

© 2021 V2EX