如何在packages.json中指定所需的Node.js版本?
我有一个需要Node版本12或更高版本的Node.js项目。 有没有办法在packages.json文件中指定它,这样安装程序会自动检查并通知用户是否需要升级?
我想你可以使用“引擎”字段:
{ "engines" : { "node" : ">=0.12" } }
正如你所说的,你的代码绝对不能用于任何较低版本,你可能也需要“engineStrict”标志:
{ "engineStrict" : true }
有关packages.json文件的文档可以在npmjs网站上find
更新
engineStrict
现在已被弃用,所以这只会给出警告。 现在让用户运行npm config set engine-strict true
如果他们想npm config set engine-strict true
。
就像Ibam说的那样, engineStrict
现在已经被弃用了。 但是我发现这个解决scheme:
入住version.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); }
的package.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-minimum-required-node-js-version-4a78a8855a0f#.3oslqmig4
.nvmrc
还有一件事…一个dotfile'.nvmrc'可以用于需要特定的节点版本(但我没有尝试它) – https://github.com/creationix/nvm#nvmrc