mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-03-13 12:40:18 -05:00
fix: better version check, closes #1564
This commit is contained in:
@@ -1,20 +1,28 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
// Check node version before requiring/doing anything else
|
||||
// The user may be on a very old node version
|
||||
|
||||
const chalk = require('chalk')
|
||||
const semver = require('semver')
|
||||
const requiredVersion = require('../package.json').engines.node
|
||||
|
||||
function checkNodeVersion (wanted, id) {
|
||||
if (!semver.satisfies(process.version, wanted)) {
|
||||
console.log(chalk.red(
|
||||
'You are using Node ' + process.version + ', but this version of ' + id +
|
||||
'requires Node ' + wanted + '.\nPlease upgrade your Node version.'
|
||||
))
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
checkNodeVersion(requiredVersion, 'vue-cli')
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const slash = require('slash')
|
||||
const chalk = require('chalk')
|
||||
const semver = require('semver')
|
||||
const minimist = require('minimist')
|
||||
const requiredVersion = require('../package.json').engines.node
|
||||
|
||||
if (!semver.satisfies(process.version, requiredVersion)) {
|
||||
console.log(chalk.red(
|
||||
`You are using Node ${process.version}, but this version of vue-cli ` +
|
||||
`requires Node ${requiredVersion}.\nPlease upgrade your Node version.`
|
||||
))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// enter debug mode when creating test repo
|
||||
if (
|
||||
@@ -105,6 +113,7 @@ program
|
||||
.option('--headless', `Don't open browser on start and output port`)
|
||||
.description('start and open the vue-cli ui')
|
||||
.action((cmd) => {
|
||||
checkNodeVersion('>=8.6', 'vue ui')
|
||||
require('../lib/ui')(cleanArgs(cmd))
|
||||
})
|
||||
|
||||
@@ -135,17 +144,7 @@ program.on('--help', () => {
|
||||
program.commands.forEach(c => c.on('--help', () => console.log()))
|
||||
|
||||
// enhance common error messages
|
||||
const enhanceErrorMessages = (methodName, log) => {
|
||||
program.Command.prototype[methodName] = function (...args) {
|
||||
if (methodName === 'unknownOption' && this._allowUnknownOption) {
|
||||
return
|
||||
}
|
||||
this.outputHelp()
|
||||
console.log(` ` + chalk.red(log(...args)))
|
||||
console.log()
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
const enhanceErrorMessages = require('../lib/util/enhanceErrorMessages')
|
||||
|
||||
enhanceErrorMessages('missingArgument', argName => {
|
||||
return `Missing required argument ${chalk.yellow(`<${argName}>`)}.`
|
||||
|
||||
14
packages/@vue/cli/lib/util/enhanceErrorMessages.js
Normal file
14
packages/@vue/cli/lib/util/enhanceErrorMessages.js
Normal file
@@ -0,0 +1,14 @@
|
||||
const program = require('commander')
|
||||
const chalk = require('chalk')
|
||||
|
||||
module.exports = (methodName, log) => {
|
||||
program.Command.prototype[methodName] = function (...args) {
|
||||
if (methodName === 'unknownOption' && this._allowUnknownOption) {
|
||||
return
|
||||
}
|
||||
this.outputHelp()
|
||||
console.log(` ` + chalk.red(log(...args)))
|
||||
console.log()
|
||||
process.exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user