1- const EventEmitter = require ( 'events' )
2- const fs = require ( 'fs-extra' )
1+ const path = require ( 'path' )
32const chalk = require ( 'chalk' )
43const debug = require ( 'debug' )
54const execa = require ( 'execa' )
65const inquirer = require ( 'inquirer' )
6+ const EventEmitter = require ( 'events' )
77const Generator = require ( './Generator' )
88const cloneDeep = require ( 'lodash.clonedeep' )
99const sortObject = require ( './util/sortObject' )
@@ -13,7 +13,8 @@ const { clearConsole } = require('./util/clearConsole')
1313const PromptModuleAPI = require ( './PromptModuleAPI' )
1414const writeFileTree = require ( './util/writeFileTree' )
1515const { formatFeatures } = require ( './util/features' )
16- const fetchRemotePreset = require ( './util/fetchRemotePreset' )
16+ const loadLocalPreset = require ( './util/loadLocalPreset' )
17+ const loadRemotePreset = require ( './util/loadRemotePreset' )
1718const generateReadme = require ( './util/generateReadme' )
1819
1920const {
@@ -113,8 +114,13 @@ module.exports = class Creator extends EventEmitter {
113114 }
114115 const deps = Object . keys ( preset . plugins )
115116 deps . forEach ( dep => {
116- pkg . devDependencies [ dep ] = preset . plugins [ dep ] . version ||
117+ if ( preset . plugins [ dep ] . _isPreset ) {
118+ return
119+ }
120+ pkg . devDependencies [ dep ] = (
121+ preset . plugins [ dep ] . version ||
117122 ( / ^ @ v u e / . test ( dep ) ? `^${ latest } ` : `latest` )
123+ )
118124 } )
119125 // write package.json
120126 await writeFileTree ( context , {
@@ -267,13 +273,13 @@ module.exports = class Creator extends EventEmitter {
267273
268274 if ( name in savedPresets ) {
269275 preset = savedPresets [ name ]
270- } else if ( name . endsWith ( '.json' ) ) {
271- preset = await fs . readJson ( name )
276+ } else if ( name . endsWith ( '.json' ) || / ^ [ . / \\ ] / . test ( name ) ) {
277+ preset = await loadLocalPreset ( path . resolve ( name ) )
272278 } else if ( name . includes ( '/' ) ) {
273279 logWithSpinner ( `Fetching remote preset ${ chalk . cyan ( name ) } ...` )
274280 this . emit ( 'creation' , { event : 'fetch-remote-preset' } )
275281 try {
276- preset = await fetchRemotePreset ( name , clone )
282+ preset = await loadRemotePreset ( name , clone )
277283 stopSpinner ( )
278284 } catch ( e ) {
279285 stopSpinner ( )
@@ -312,7 +318,8 @@ module.exports = class Creator extends EventEmitter {
312318 if ( options . prompts ) {
313319 const prompts = loadModule ( `${ id } /prompts` , this . context )
314320 if ( prompts ) {
315- console . log ( `\n${ chalk . cyan ( id ) } ` )
321+ log ( )
322+ log ( `${ chalk . cyan ( options . _isPreset ? `Preset options:` : id ) } ` )
316323 options = await inquirer . prompt ( prompts )
317324 }
318325 }
0 commit comments