Skip to content

Commit e78d053

Browse files
chrisvfritzyyx990803
authored andcommitted
enforce minimum node version 4.x (vuejs#82)
1 parent d917298 commit e78d053

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ A simple CLI for scaffolding Vue.js projects.
44

55
### Installation
66

7-
Prerequisites: [Node.js](https://nodejs.org/en/) (>5.x preferred) and [Git](https://git-scm.com/).
7+
Prerequisites: [Node.js](https://nodejs.org/en/) (>=4.x, 5.x preferred) and [Git](https://git-scm.com/).
88

99
``` bash
1010
$ npm install -g vue-cli

lib/check-version.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,30 @@
11
var request = require('request')
22
var semver = require('semver')
33
var chalk = require('chalk')
4+
var packageConfig = require('../package.json')
45

56
module.exports = function (done) {
7+
// Parse version number from strings such as 'v4.2.0' or `>=4.0.0'
8+
function parseVersionNumber (versionString) {
9+
return parseFloat(versionString.replace(/[^\d\.]/g, ''))
10+
}
11+
12+
// Ensure minimum supported node version is used
13+
var minNodeVersion = parseVersionNumber(packageConfig.engines.node)
14+
var currentNodeVersion = parseVersionNumber(process.version)
15+
if (minNodeVersion > currentNodeVersion) {
16+
return console.log(chalk.red(
17+
' You must upgrade node to >=' + minNodeVersion + '.x to use vue-cli'
18+
))
19+
}
20+
621
request({
722
url: 'https://registry.npmjs.org/vue-cli',
823
timeout: 1000
924
}, function (err, res, body) {
1025
if (!err && res.statusCode === 200) {
1126
var latestVersion = JSON.parse(body)['dist-tags'].latest
12-
var localVersion = require('../package.json').version
27+
var localVersion = packageConfig.version
1328
if (semver.lt(localVersion, latestVersion)) {
1429
console.log(chalk.yellow(' A newer version of vue-cli is available.'))
1530
console.log()

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-cli",
3-
"version": "2.0.1",
3+
"version": "2.0.2",
44
"description": "A simple CLI for scaffolding Vue.js projects.",
55
"preferGlobal": true,
66
"bin": {
@@ -55,5 +55,8 @@
5555
"eslint-plugin-promise": "^1.1.0",
5656
"eslint-plugin-standard": "^1.3.2",
5757
"mocha": "^2.4.5"
58+
},
59+
"engines" : {
60+
"node" : ">=4.0.0"
5861
}
5962
}

0 commit comments

Comments
 (0)