|
1 | 1 | #!/usr/bin/env node
|
2 | 2 |
|
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 | + |
6 | 6 | const chalk = require('chalk')
|
7 | 7 | const semver = require('semver')
|
8 |
| -const minimist = require('minimist') |
9 | 8 | const requiredVersion = require('../package.json').engines.node
|
10 | 9 |
|
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 | + } |
17 | 18 | }
|
18 | 19 |
|
| 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 | + |
19 | 27 | // enter debug mode when creating test repo
|
20 | 28 | if (
|
21 | 29 | slash(process.cwd()).indexOf('/packages/test') > 0 && (
|
@@ -105,6 +113,7 @@ program
|
105 | 113 | .option('--headless', `Don't open browser on start and output port`)
|
106 | 114 | .description('start and open the vue-cli ui')
|
107 | 115 | .action((cmd) => {
|
| 116 | + checkNodeVersion('>=8.6', 'vue ui') |
108 | 117 | require('../lib/ui')(cleanArgs(cmd))
|
109 | 118 | })
|
110 | 119 |
|
@@ -135,17 +144,7 @@ program.on('--help', () => {
|
135 | 144 | program.commands.forEach(c => c.on('--help', () => console.log()))
|
136 | 145 |
|
137 | 146 | // 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') |
149 | 148 |
|
150 | 149 | enhanceErrorMessages('missingArgument', argName => {
|
151 | 150 | return `Missing required argument ${chalk.yellow(`<${argName}>`)}.`
|
|
0 commit comments