我有一个Node.js项目,需要节点版本12或更高。有没有办法在packages.json
文件中指定这一点,以便安装程序自动检查并通知用户是否需要升级?
正如Ibam所说,enginestrect
现在已不推荐使用。但我找到了这个解决方案:
检查版本。js:
import semver from 'semver';
import { engines } from './package';
const version = engines.node;
if (!semver.satisfies(process.version, version)) {
console.log(`Required node version ${version} not satisfied with current version ${process.version}.`);
process.exit(1);
}
包裹json:
{
"name": "my package",
"engines": {
"node": ">=50.9" // intentionally so big version number
},
"scripts": {
"requirements-check": "babel-node check-version.js",
"postinstall": "npm run requirements-check"
}
}
在这里了解更多信息:https://medium.com/@adambisek/how-to-check-最低要求-node-js-version-4a78a8855a0f#.3oslqmig4
.nvmrc
还有一件事。“点文件”。nvmrc'可用于要求特定节点版本-https://github.com/creationix/nvm#nvmrc
但是,它只受到npm脚本(和纱线脚本)的尊重。
将以下内容添加到package.json
:
"engines": {
"npm": ">=6.0.0",
"node": ">=10.0.0"
},
将以下内容添加到. npmrc
(与package.json
相同的目录):
engine-strict=true
我认为您可以使用“引擎”字段:
{ "engines" : { "node" : ">=0.12" } }
正如您所说,您的代码肯定无法与任何较低版本一起使用,您可能也需要“EngineStrct”标志:
{ "engineStrict" : true }
package.json文件的文档可以在npmjs站点上找到
使现代化
现在已弃用,因此这只会给出警告。现在,如果用户想要运行npm config set Engine-严格的true
,这就取决于用户了。
更新2
正如ben在下面指出的,创建一个。如果节点版本不兼容,则项目根目录下的npmrc
文件(与package.json文件的级别相同),文本为engine strict=true
将在安装过程中强制出错。
问题内容: 我有一个需要节点版本12或更高版本的Node.js项目。有没有办法在packages.json文件中指定此名称,以便安装程序将自动检查并通知用户是否需要升级? 问题答案: 我认为您可以使用“引擎”字段: 正如您所说的那样,您的代码绝对不能与任何较低版本一起使用,您可能也希望“ engineStrict”标志: 可在npmjs网站上找到package.json文件的文档 更新资料 现在已
问题内容: VS Code是否可以使用NVM指定的节点版本? 我在本地安装了6.9.2。即使从OS X终端(不是VS Code终端)切换到另一个版本后,重新启动VS Code,VS Code仍会使用6.9.2显示。 OS X终端 VS Code终端 问题答案: 解决方法是设置别名。在OS终端中运行- 打开vscode,现在运行返回 似乎vscode占用了此(别名默认值)值,而不是由设置的节点版本
VS代码是否可以使用NVM指定的节点版本? 我在本地安装了6.9.2。即使切换到另一个版本后,从OS X终端(不是VS Code终端),重新启动VS Code,VS Code仍然显示使用6.9.2。 OSX终端 VS代码终端
当我更新(和测试)应用程序中的特定页面时,我需要停止服务器,重新启动,切换到浏览器窗口,点击F5并切换回终端以查看输出。这需要很多时间……) 有没有一种方法可以从如下内容开始: 所以我可以直接看到输出,就像有人从他们的浏览器点击页面一样? 我发现了这个问题,但我想它包含在服务器代码中,所以每次都需要更新。这是一个解决方案,但我想知道是否有更快的方法来做到这一点。 谢谢 对于curl,我得到了这个错
我必须在JavaSelenium应用程序中解析此元素: 我想得到一个包含所有5个孩子的列表,包括文本。当我使用WebElement中的任何选择器(xpath、cssSelector)时,它只返回4个非文本元素。有人知道怎么做吗?我是硒的新手,以前从未使用过。谢谢
问题内容: 我想将Node版本从最新版本降级到。 但是到目前为止,没有任何效果。尝试了NVM,并且通过说未找到make命令也给出了错误。如何降级Node? 问题答案: 您可以将其用于节点的版本管理。有一个简单的介绍。 这是非常容易使用。 然后您可以显示您的节点版本: 对于Windows,nvm是一个受欢迎的工具。