From 74d784d1355e100ff3d19f41de74002f75d4a08a Mon Sep 17 00:00:00 2001 From: test Date: Mon, 30 Apr 2018 14:31:01 -0500 Subject: [PATCH 1/2] feat(cli): allow local .json files for presets (#1068) --- packages/@vue/cli/lib/Creator.js | 3 +++ packages/@vue/cli/lib/util/readLocalPreset.js | 8 ++++++++ 2 files changed, 11 insertions(+) create mode 100644 packages/@vue/cli/lib/util/readLocalPreset.js diff --git a/packages/@vue/cli/lib/Creator.js b/packages/@vue/cli/lib/Creator.js index 7930d1185c..ac00d4c35b 100644 --- a/packages/@vue/cli/lib/Creator.js +++ b/packages/@vue/cli/lib/Creator.js @@ -14,6 +14,7 @@ const writeFileTree = require('./util/writeFileTree') const formatFeatures = require('./util/formatFeatures') const setupDevProject = require('./util/setupDevProject') const fetchRemotePreset = require('./util/fetchRemotePreset') +const readLocalPreset = require('./util/readLocalPreset') const { defaults, @@ -238,6 +239,8 @@ module.exports = class Creator { error(`Failed fetching remote preset ${chalk.cyan(name)}:`) throw e } + } else if (name.endsWith('.json')) { + preset = await readLocalPreset(this.context, name) } else { preset = savedPresets[name] } diff --git a/packages/@vue/cli/lib/util/readLocalPreset.js b/packages/@vue/cli/lib/util/readLocalPreset.js new file mode 100644 index 0000000000..4d64be5e7a --- /dev/null +++ b/packages/@vue/cli/lib/util/readLocalPreset.js @@ -0,0 +1,8 @@ +const fs = require('fs') +const { promisify } = require('util') +const read = promisify(fs.readFile) + +module.exports = async function readLocalPreset (dir, preset) { + const json = await read(preset) + return JSON.parse(json) +} From becb5af40e9677df06467040f259e2194b693553 Mon Sep 17 00:00:00 2001 From: Derek Henscheid Date: Wed, 2 May 2018 19:40:39 -0500 Subject: [PATCH 2/2] feat(cli): use fs-extra to load the local preset --- packages/@vue/cli/lib/Creator.js | 4 ++-- packages/@vue/cli/lib/util/readLocalPreset.js | 8 -------- packages/@vue/cli/package.json | 1 + 3 files changed, 3 insertions(+), 10 deletions(-) delete mode 100644 packages/@vue/cli/lib/util/readLocalPreset.js diff --git a/packages/@vue/cli/lib/Creator.js b/packages/@vue/cli/lib/Creator.js index ac00d4c35b..ae07e79e0c 100644 --- a/packages/@vue/cli/lib/Creator.js +++ b/packages/@vue/cli/lib/Creator.js @@ -1,3 +1,4 @@ +const fs = require('fs-extra') const chalk = require('chalk') const debug = require('debug') const execa = require('execa') @@ -14,7 +15,6 @@ const writeFileTree = require('./util/writeFileTree') const formatFeatures = require('./util/formatFeatures') const setupDevProject = require('./util/setupDevProject') const fetchRemotePreset = require('./util/fetchRemotePreset') -const readLocalPreset = require('./util/readLocalPreset') const { defaults, @@ -240,7 +240,7 @@ module.exports = class Creator { throw e } } else if (name.endsWith('.json')) { - preset = await readLocalPreset(this.context, name) + preset = await fs.readJson(name) } else { preset = savedPresets[name] } diff --git a/packages/@vue/cli/lib/util/readLocalPreset.js b/packages/@vue/cli/lib/util/readLocalPreset.js deleted file mode 100644 index 4d64be5e7a..0000000000 --- a/packages/@vue/cli/lib/util/readLocalPreset.js +++ /dev/null @@ -1,8 +0,0 @@ -const fs = require('fs') -const { promisify } = require('util') -const read = promisify(fs.readFile) - -module.exports = async function readLocalPreset (dir, preset) { - const json = await read(preset) - return JSON.parse(json) -} diff --git a/packages/@vue/cli/package.json b/packages/@vue/cli/package.json index f8cddc6e49..c5fc423bc6 100644 --- a/packages/@vue/cli/package.json +++ b/packages/@vue/cli/package.json @@ -35,6 +35,7 @@ "download-git-repo": "^1.0.2", "ejs": "^2.5.7", "execa": "^0.8.0", + "fs-extra": "^6.0.0", "globby": "^8.0.1", "import-global": "^0.1.0", "inquirer": "^4.0.1",