12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 'use strict'
- const chalk = require('chalk')
- const semver = require('semver')
- const packageConfig = require('../package.json')
- const shell = require('shelljs')
- function exec(cmd) {
- return require('child_process')
- .execSync(cmd)
- .toString()
- .trim()
- }
- const versionRequirements = [
- {
- name: 'node',
- currentVersion: semver.clean(process.version),
- versionRequirement: packageConfig.engines.node
- }
- ]
- if (shell.which('npm')) {
- versionRequirements.push({
- name: 'npm',
- currentVersion: exec('npm --version'),
- versionRequirement: packageConfig.engines.npm
- })
- }
- module.exports = function() {
- const warnings = []
- for (let i = 0; i < versionRequirements.length; i++) {
- const mod = versionRequirements[i]
- if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
- warnings.push(
- mod.name +
- ': ' +
- chalk.red(mod.currentVersion) +
- ' should be ' +
- chalk.green(mod.versionRequirement)
- )
- }
- }
- if (warnings.length) {
- console.log('')
- console.log(
- chalk.yellow(
- 'To use this template, you must update following to modules:'
- )
- )
- console.log()
- for (let i = 0; i < warnings.length; i++) {
- const warning = warnings[i]
- console.log(' ' + warning)
- }
- console.log()
- process.exit(1)
- }
- }
|