javascript - 在特定 Node 版本上运行应用程序

标签 javascript node.js web

是否可以强制我的应用程序在某些特定或更高 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/

相关文章:

javascript - 让用户在深色和浅色模式之间进行选择(保存每个页面的设置,cookies?)

javascript - UglifyJS - 转换文件夹中的所有 .js

javascript - 每次从浏览器重新加载时如何打开特定的url页面?

javascript - 防止 JavaScript 将时间更改为 GMT

javascript - div 中的文本 - 使用 jQuery 自动滚动 - 里面有 jsFiddle

javascript - d3 javascript点击函数调用

javascript - 有没有比 crypto.randomBytes 更好的方法来生成性能方面的唯一 ID?

node.js - Node.js 中的 fd(文件描述符)有什么用?

javascript - 测试以 en-us utf8 排序的字符串时的 localeCompare

reactjs - react-native 对 Web 开发和移动开发都有好处