是否可以强制我的应用程序在某些特定或更高 Node 版本下运行? 我发现如果某些环境有较旧的 Node ,我的应用程序可能会出错。
我想知道我是否可以在 package.json 中设置它。如果出现任何问题,它可以将相关消息记录到终端。
最佳答案
您可以为此使用 Node 版本管理器:https://github.com/creationix/nvm
安装 NVM 后,您可以根据需要安装任意多个不同版本的 Node,并且可以选择在哪个版本下运行给定的应用程序。
如果您希望您的应用程序仅在给定版本下运行,您可以使用以下方法检查版本:process.versions.node
并与它进行比较。例如,将其放在 app.js
的开头(或者您的初始文件是什么):
// Using package semver for clarity
var semver = require('semver');
if (!semver.satisfies(process.versions.node, '>0.11.0')) {
console.log('Incorrect Node version');
process.exit();
}
(以下仅针对npm包)
测试不同版本后,您可以在 package.json
中使用 engines
参数指定您的包兼容的 Node 版本。以下声明适用于等于或大于 0.6.0
的所有版本:
"engines": {
"node": ">=0.6"
}
需要注意的是,这实际上并没有强制用户使用>=0.6
,但是如果有人尝试npm install<,将会报错
你的包。如果你想强制一个版本,你可以添加 "engineStrict": true
。
关于javascript - 在特定 Node 版本上运行应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188079/