Path: blob/develop/web/build/check-versions.js
387 views
'use strict'1const chalk = require('chalk')2const semver = require('semver')3const packageConfig = require('../package.json')4const shell = require('shelljs')56function exec (cmd) {7return require('child_process').execSync(cmd).toString().trim()8}910const versionRequirements = [11{12name: 'node',13currentVersion: semver.clean(process.version),14versionRequirement: packageConfig.engines.node15}16]1718if (shell.which('npm')) {19versionRequirements.push({20name: 'npm',21currentVersion: exec('npm --version'),22versionRequirement: packageConfig.engines.npm23})24}2526module.exports = function () {27const warnings = []2829for (let i = 0; i < versionRequirements.length; i++) {30const mod = versionRequirements[i]3132if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {33warnings.push(mod.name + ': ' +34chalk.red(mod.currentVersion) + ' should be ' +35chalk.green(mod.versionRequirement)36)37}38}3940if (warnings.length) {41console.log('')42console.log(chalk.yellow('To use this template, you must update following to modules:'))43console.log()4445for (let i = 0; i < warnings.length; i++) {46const warning = warnings[i]47console.log(' ' + warning)48}4950console.log()51process.exit(1)52}53}545556