3
3
var download = require ( 'download-git-repo' )
4
4
var program = require ( 'commander' )
5
5
var exists = require ( 'fs' ) . existsSync
6
- var os = require ( 'os' )
7
6
var path = require ( 'path' )
8
- var rm = require ( 'rimraf' ) . sync
9
- var uid = require ( 'uid' )
10
7
var ora = require ( 'ora' )
8
+ var home = require ( 'user-home' )
9
+ var tildify = require ( 'tildify' )
11
10
var chalk = require ( 'chalk' )
12
11
var inquirer = require ( 'inquirer' )
13
12
var logger = require ( '../lib/logger' )
@@ -22,6 +21,7 @@ var warnings = require('../lib/warnings')
22
21
program
23
22
. usage ( '<template-name> [project-name]' )
24
23
. option ( '-c, --clone' , 'use git clone' )
24
+ . option ( '--offline' , 'use cached template' )
25
25
26
26
/**
27
27
* Help.
@@ -48,15 +48,6 @@ function help () {
48
48
}
49
49
help ( )
50
50
51
- /**
52
- * Padding.
53
- */
54
-
55
- console . log ( )
56
- process . on ( 'exit' , function ( ) {
57
- console . log ( )
58
- } )
59
-
60
51
/**
61
52
* Settings.
62
53
*/
@@ -69,6 +60,21 @@ var name = inPlace ? path.relative('../', process.cwd()) : rawName
69
60
var to = path . resolve ( rawName || '.' )
70
61
var clone = program . clone || false
71
62
63
+ var tmp = path . join ( home , '.vue-templates' , template . replace ( / \/ / g, '-' ) )
64
+ if ( program . offline ) {
65
+ console . log ( `> Use cached template at ${ chalk . yellow ( tildify ( tmp ) ) } ` )
66
+ template = tmp
67
+ }
68
+
69
+ /**
70
+ * Padding.
71
+ */
72
+
73
+ console . log ( )
74
+ process . on ( 'exit' , function ( ) {
75
+ console . log ( )
76
+ } )
77
+
72
78
if ( exists ( to ) ) {
73
79
inquirer . prompt ( [ {
74
80
type : 'confirm' ,
@@ -134,14 +140,10 @@ function run () {
134
140
*/
135
141
136
142
function downloadAndGenerate ( template ) {
137
- var tmp = os . tmpdir ( ) + '/vue-template-' + uid ( )
138
143
var spinner = ora ( 'downloading template' )
139
144
spinner . start ( )
140
145
download ( template , tmp , { clone : clone } , function ( err ) {
141
146
spinner . stop ( )
142
- process . on ( 'exit' , function ( ) {
143
- rm ( tmp )
144
- } )
145
147
if ( err ) logger . fatal ( 'Failed to download repo ' + template + ': ' + err . message . trim ( ) )
146
148
generate ( name , tmp , to , function ( err ) {
147
149
if ( err ) logger . fatal ( err )
0 commit comments