Skip to content

Commit 8b9477f

Browse files
author
Guillaume Chau
committed
fix: better version check, closes #1564
1 parent e6d68ca commit 8b9477f

File tree

2 files changed

+34
-21
lines changed

2 files changed

+34
-21
lines changed

packages/@vue/cli/bin/vue.js

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
#!/usr/bin/env node
22

3-
const fs = require('fs')
4-
const path = require('path')
5-
const slash = require('slash')
3+
// Check node version before requiring/doing anything else
4+
// The user may be on a very old node version
5+
66
const chalk = require('chalk')
77
const semver = require('semver')
8-
const minimist = require('minimist')
98
const requiredVersion = require('../package.json').engines.node
109

11-
if (!semver.satisfies(process.version, requiredVersion)) {
12-
console.log(chalk.red(
13-
`You are using Node ${process.version}, but this version of vue-cli ` +
14-
`requires Node ${requiredVersion}.\nPlease upgrade your Node version.`
15-
))
16-
process.exit(1)
10+
function checkNodeVersion (wanted, id) {
11+
if (!semver.satisfies(process.version, wanted)) {
12+
console.log(chalk.red(
13+
'You are using Node ' + process.version + ', but this version of ' + id +
14+
'requires Node ' + wanted + '.\nPlease upgrade your Node version.'
15+
))
16+
process.exit(1)
17+
}
1718
}
1819

20+
checkNodeVersion(requiredVersion, 'vue-cli')
21+
22+
const fs = require('fs')
23+
const path = require('path')
24+
const slash = require('slash')
25+
const minimist = require('minimist')
26+
1927
// enter debug mode when creating test repo
2028
if (
2129
slash(process.cwd()).indexOf('/packages/test') > 0 && (
@@ -105,6 +113,7 @@ program
105113
.option('--headless', `Don't open browser on start and output port`)
106114
.description('start and open the vue-cli ui')
107115
.action((cmd) => {
116+
checkNodeVersion('>=8.6', 'vue ui')
108117
require('../lib/ui')(cleanArgs(cmd))
109118
})
110119

@@ -135,17 +144,7 @@ program.on('--help', () => {
135144
program.commands.forEach(c => c.on('--help', () => console.log()))
136145

137146
// enhance common error messages
138-
const enhanceErrorMessages = (methodName, log) => {
139-
program.Command.prototype[methodName] = function (...args) {
140-
if (methodName === 'unknownOption' && this._allowUnknownOption) {
141-
return
142-
}
143-
this.outputHelp()
144-
console.log(` ` + chalk.red(log(...args)))
145-
console.log()
146-
process.exit(1)
147-
}
148-
}
147+
const enhanceErrorMessages = require('../lib/util/enhanceErrorMessages')
149148

150149
enhanceErrorMessages('missingArgument', argName => {
151150
return `Missing required argument ${chalk.yellow(`<${argName}>`)}.`
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const program = require('commander')
2+
const chalk = require('chalk')
3+
4+
module.exports = (methodName, log) => {
5+
program.Command.prototype[methodName] = function (...args) {
6+
if (methodName === 'unknownOption' && this._allowUnknownOption) {
7+
return
8+
}
9+
this.outputHelp()
10+
console.log(` ` + chalk.red(log(...args)))
11+
console.log()
12+
process.exit(1)
13+
}
14+
}

0 commit comments

Comments
 (0)