hawtim.github.io icon indicating copy to clipboard operation
hawtim.github.io copied to clipboard

安装依赖时检查 node version & npm version

Open hawtim opened this issue 3 years ago • 0 comments

package.json

"scripts": {
    "postinstall": "node ./scripts/checkNodeVersion.js"
  },
"engines": {
    "node": ">=12.17.1 <=14.19.1",
    "npm": ">=5.0.0 < 7.0.0"
  },

./scripts/checkNodeVersion.js

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

const nodeVersion = engines.node;
const npmVersion = engines.npm;

const currentNpmVersion = require('child_process')
  .execSync('npm --version').toString()

const currentNodeVersion = process.version

if (!semver.satisfies(currentNpmVersion, npmVersion)) {
  console.error(`Current npm version ${currentNpmVersion} is not satisfied with required npm version ${npmVersion}`);
  process.exit(1);
}

if (!semver.satisfies(currentNodeVersion, nodeVersion)) {
  console.error(`Current node version ${currentNodeVersion} is not satisfied with required node version ${version}`);
  process.exit(1);
}

hawtim avatar Jul 22 '22 09:07 hawtim