diff --git a/bin/vue-init b/bin/vue-init index b0d8508b2b..874412fa9c 100755 --- a/bin/vue-init +++ b/bin/vue-init @@ -3,11 +3,10 @@ var download = require('download-git-repo') var program = require('commander') var exists = require('fs').existsSync -var os = require('os') var path = require('path') -var rm = require('rimraf').sync -var uid = require('uid') var ora = require('ora') +var home = require('user-home') +var tildify = require('tildify') var chalk = require('chalk') var inquirer = require('inquirer') var logger = require('../lib/logger') @@ -22,6 +21,7 @@ var warnings = require('../lib/warnings') program .usage(' [project-name]') .option('-c, --clone', 'use git clone') + .option('--offline', 'use cached template') /** * Help. @@ -48,15 +48,6 @@ function help () { } help() -/** - * Padding. - */ - -console.log() -process.on('exit', function () { - console.log() -}) - /** * Settings. */ @@ -69,6 +60,21 @@ var name = inPlace ? path.relative('../', process.cwd()) : rawName var to = path.resolve(rawName || '.') var clone = program.clone || false +var tmp = path.join(home, '.vue-templates', template.replace(/\//g, '-')) +if (program.offline) { + console.log(`> Use cached template at ${chalk.yellow(tildify(tmp))}`) + template = tmp +} + +/** + * Padding. + */ + +console.log() +process.on('exit', function () { + console.log() +}) + if (exists(to)) { inquirer.prompt([{ type: 'confirm', @@ -134,14 +140,10 @@ function run () { */ function downloadAndGenerate (template) { - var tmp = os.tmpdir() + '/vue-template-' + uid() var spinner = ora('downloading template') spinner.start() download(template, tmp, { clone: clone }, function (err) { spinner.stop() - process.on('exit', function () { - rm(tmp) - }) if (err) logger.fatal('Failed to download repo ' + template + ': ' + err.message.trim()) generate(name, tmp, to, function (err) { if (err) logger.fatal(err) diff --git a/package.json b/package.json index 1cdd394acb..6fc9ee6e6d 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "rimraf": "^2.5.0", "semver": "^5.1.0", "tildify": "^1.2.0", - "uid": "0.0.2", "url-loader": "^0.5.7", "user-home": "^2.0.0", "validate-npm-package-name": "^2.2.2", diff --git a/yarn.lock b/yarn.lock index 1c75006437..efe3105ce9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5030,10 +5030,6 @@ uid-number@~0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" -uid@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/uid/-/uid-0.0.2.tgz#5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103" - uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"