如何查看你们 JS 项目中应采用的 node 版本
更多描述 当入职新公司,接手一个新的项目时,如何知道这个项目需要的 node 版本是多少
Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 274
Author 回答者: rex-ll
如果项目使用的yarn和typescript,可以查看yarn.lock里的@types/node@* 的version
Author 回答者: shfshanyue
packageJson.engines
,第三方模块都会有,自己的项目中有可能有pm2.app[].interpreter
,如果采用pm2
部署,可以查看 interpreter 选项,但不保证该项存在FROM
,如果采用docker
部署,查看基础镜像Dockerfile
中 node 的版本号- 如果以上方式都不可以,那只有问人了
Author 回答者: shfshanyue
@DoubleRayWang 我试了一下,这种方法应该是不靠谱的
Author 回答者: mrcaidev
process.env
里也可以看到 node 版本号,比如 NODE
, _
这两个字段的值。
个人是用的 NVM,没有在原生的 node 上试过,但后者的 process.env
应该也有。
Author 回答者: pengzhanbo
我不确定是指 一个完全新的从零开始的项目,还是指已有的项目相对于新人来说的刚接手的“新”。
-
如果是一个完全新的从零开始的项目,一般来说,如果均是采用最新稳定版本的依赖包,那么可以采用的node版本,其范围可以确定在
^14.18.0 || >=16
不超过node的当前最新稳定版本;而如果由于项目的特殊性,采用了低版本的依赖包,那么需要查看这些包的package.json
的engines.node
以确定这些包支持的node版本,取交集后确定最终采用的node版本。 -
如果是一个已有的项目,首先查看的是 项目的
package.json
中的engines.node
字段,如果有声明,那么就采用对应的版本,如果没有,那么直接询问该项目的原负责人,确认是否有 node 版本的要求以及应该使用哪个版本,负责人不确定就询问原先用于开发或构建这个项目的机器安装的 node 版本,这样可以保证切换到新人的开发机器上,也有一致的node环境。