控制node版本

口头约定的node版本并不能保证所有人在所有时间都能遵守规则,但用代码控制不一样,像一个毫无情分可言的杀手,发现可乘之机立即结束进程,干净利落(有点中二)。

使用Semver

跟目录下创建checkversion.js

const semver = require('semver');
const { engines } = require('./package');

const version = engines.node;
if (!semver.satisfies(process.version, version)) {
    console.error(`Required node version ${version}, got: ${process.version}.`);
    process.exit(1);
}

package.json跟节点下的engines定义版本号

{
  //...
  "engines": {
    "node": "~12.13.0"
  },
  //...
}

~ 表示不改变大版本号和次要版本号
^ 表示不改变大版本号

由于semver需要在安装后运行,因此在package.json scripts下的postinstall(不应在preinstall hook下)添加

{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "postinstall": "node ./checkver.js"
  },
}

完成后执行node install 当系统node version与指定环境不一致时会结束进程并给予提示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值