Skip to content

Commit 5ed9255

Browse files
committed
check version when installing remote template
1 parent f60d8ee commit 5ed9255

File tree

3 files changed

+38
-11
lines changed

3 files changed

+38
-11
lines changed

bin/vue-init

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var ora = require('ora')
1010
var chalk = require('chalk')
1111
var inquirer = require('inquirer')
1212
var logger = require('../lib/logger')
13+
var checkVersion = require('../lib/check-version')
1314

1415
/**
1516
* Usage.
@@ -103,18 +104,20 @@ function run () {
103104
if (!hasSlash) {
104105
template = 'vuejs-templates/' + template
105106
}
106-
// download and generate
107-
var tmp = '/tmp/vue-template-' + uid()
108-
var spinner = ora('downloading template')
109-
spinner.start()
110-
download(template, tmp, { clone: clone }, function (err) {
111-
spinner.stop()
112-
if (err) logger.fatal(err)
113-
generate(tmp, to, function (err) {
107+
checkVersion(function () {
108+
// download and generate
109+
var tmp = '/tmp/vue-template-' + uid()
110+
var spinner = ora('downloading template')
111+
spinner.start()
112+
download(template, tmp, { clone: clone }, function (err) {
113+
spinner.stop()
114114
if (err) logger.fatal(err)
115-
rm(tmp)
116-
console.log()
117-
logger.success('Generated "%s".', name)
115+
generate(tmp, to, function (err) {
116+
if (err) logger.fatal(err)
117+
rm(tmp)
118+
console.log()
119+
logger.success('Generated "%s".', name)
120+
})
118121
})
119122
})
120123
}

lib/check-version.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var request = require('request')
2+
var semver = require('semver')
3+
var chalk = require('chalk')
4+
5+
module.exports = function (done) {
6+
request({
7+
url: 'http://registry.npmjs.org/vue-cli',
8+
timeout: 1000
9+
}, function (err, res, body) {
10+
if (!err && res.statusCode == 200) {
11+
var latestVersion = JSON.parse(body)['dist-tags'].latest
12+
var localVersion = require('../package.json').version
13+
if (semver.lt(localVersion, latestVersion)) {
14+
console.log(chalk.yellow(' A newer version of vue-cli is available.'))
15+
console.log()
16+
console.log(' latest: ' + chalk.green(latestVersion))
17+
console.log(' installed: ' + chalk.red(localVersion))
18+
console.log()
19+
}
20+
}
21+
done()
22+
})
23+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"read-metadata": "^1.0.0",
4141
"request": "^2.67.0",
4242
"rimraf": "^2.5.0",
43+
"semver": "^5.1.0",
4344
"uid": "0.0.2"
4445
},
4546
"devDependencies": {

0 commit comments

Comments
 (0)