Nodejs 运行环境是 Node12,如何知道用 npm 安装依赖库时应该指定哪个版本号?
Nodejs 运行环境是 Node12,如何知道用 npm 安装依赖库时应该指定哪个版本号?
我对 node 不是很熟悉,微信小程序的云函数运行在 node12.16 上,但是我的开发电脑是 M1 的 Macbook ,本地安装的是 node16.
我发现,如果我用 npm 安装依赖库时不指定版本号,可能会出现在本地( node16 )正常运行,但上传到云环境(node12.16)后不能正常运行的情况。
我也想过在本地安装一个 node12 ,但发现在 M1 芯片的 Mac 上安装 node12 很麻烦。
所以,我想的是如果用 npm install 依赖库的时候,指定适合 node12.16 这个环境的版本号是不是可以解决问题?
或者,有没有其他更好的办法? 谢谢,我最近刚学用 node ,不是很了解。
顺便问一下,运行在 node12 下的网络请求库,哪一个比较合适? request? got? axios? node-fetch?
打包上去的云函数因为 package-lock.json 里面指定了 v16 版本 node 的依赖,所以肯定在云函数 12.16 的 runtime 上面跑不起来。最快的做法是用 nvm 保持本地 node 和远端一致,省事不是很折腾。
request 库这种问题请善用 google https://letmegooglethat.com/?q=awesome+node+request
直接给云环境升级
node 12 很久就停止支持了,建议升级到 16
npm install n -g && n 12.16
“在 M1 芯片的 Mac 上安装 node12 很麻烦”
不是有兼容层吗?直接跑 x64 的不行?
不过其实你装了 12 也没用,npm 安装会自动装最新版的库,如果最新版不兼容旧的 Node.js 那你还是得手动调整版本,一般是去看库的文档,有的库也会把 Node.js 最低要求写在 package.json 里。
网络请求的话,我没有特殊需求选 fetch ,有特殊需求选 axios 。
如果只是想解决
“上传到云环境(node12.16)后不能正常运行“
那装个 babel + webpack ,把 target 设成 node12 不就好了吗
使用 nvm 切换本地 node 版本即可
基于 nvm
的版本控制
1. 通过 nvm
下载(或切换)你需要的版本 bash<br># 下载某个版本<br>nvm install 10<br><br># 临时切换 (当前 shell)<br>nvm use 10<br><br># 设置默认版本<br>nvm alias default 16<br>
2. 在 package.json
中加入你想限定的版本 e.g.json<br> "engines": {<br> "npm": ">=8.0.0 <9.0.0",<br> "node": ">=16.0.0 <17.0.0"<br> },<br>
3. 通过配置文件快速切换 (dotfile)bash<br># 导出当前 Node.js 版本 以供随后使用<br>nvm version > .nvmrc<br><br># 根据 .nvmrc 切换至相应版本<br>nvm use<br>
"直接给云环境升级"
升不了吧,这个是腾讯云开发指定的版本。
谢谢,我了解一下
本地安装 nvm, 随意切换 node 版本很方便
谢谢大家,我尝试在 package.json 文件中添加 “engines”: { “node”: “12.16” } 看看
“engines”: { “node”: “12.16” } 这个不行。。。
我用 brew 装了个 nvm
然后用 nvm 安装了 node12.16
安装顺利,没有网上说的麻烦,谢谢大家。
“本地安装 nvm, 随意切换 node 版本很方便”
谢谢,用这个办法解决了。
nvm install 12 然后运行,另外都已经到 12 了,直接升 16lts 也没啥问题
谢谢,我的运行环境是微信小程序云开发,版本号是微信指定的,我改不了,也用不了 docker
在Nodejs运行环境中,当使用npm安装依赖库时,选择正确的版本号至关重要,以确保兼容性和稳定性。以下是一些建议来确定应该指定哪个版本号:
-
查看当前项目依赖: 如果项目已经存在,并且之前已经安装了依赖库,可以使用
npm list <package-name>
来查看当前安装的版本号。 -
查阅文档和版本历史: 访问依赖库的GitHub仓库或npm页面,查阅其文档和版本历史记录,了解各个版本的发布时间、功能和修复。
-
使用语义化版本控制: npm遵循语义化版本控制(semver),版本号格式为
major.minor.patch
。例如,^1.2.3
表示安装1.2.3
或更高版本,但不超过2.0.0
;~1.2.3
表示安装1.2.3
或更高版本,但不超过1.3.0
。 -
指定具体版本号: 如果需要确保安装特定版本的依赖库,可以在安装命令后加上
@<version>
。例如,npm install react@17.0.2
将安装React的17.0.2
版本。 -
利用
package.json
: 在项目的package.json
文件中,可以在dependencies
或devDependencies
中指定依赖库的版本号。
综上所述,通过查阅文档、使用语义化版本控制和指定具体版本号等方法,可以确定在Node12环境下使用npm安装依赖库时应指定的版本号。