From e970b1afc31701e9cb23a7a5a4dabaeb00edd546 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 26 Jul 2018 21:37:17 -0400 Subject: [PATCH] feat: store rc file in AppData on windows close #1957 --- packages/@vue/cli/lib/options.js | 5 ++-- packages/@vue/cli/lib/util/rcPath.js | 37 +++++++++++++++++++++++++ packages/@vue/cli/lib/util/xdgConfig.js | 15 ---------- 3 files changed, 40 insertions(+), 17 deletions(-) create mode 100644 packages/@vue/cli/lib/util/rcPath.js delete mode 100644 packages/@vue/cli/lib/util/xdgConfig.js diff --git a/packages/@vue/cli/lib/options.js b/packages/@vue/cli/lib/options.js index 1bccda95b..9fd6a0df3 100644 --- a/packages/@vue/cli/lib/options.js +++ b/packages/@vue/cli/lib/options.js @@ -5,11 +5,12 @@ const cloneDeep = require('lodash.clonedeep') const { error } = require('@vue/cli-shared-utils/lib/logger') const { createSchema, validate } = require('@vue/cli-shared-utils/lib/validate') const { exit } = require('@vue/cli-shared-utils/lib/exit') -const { xdgConfigPath } = require('./util/xdgConfig') +const { xdgConfigPath, windowsConfigPath } = require('./util/rcPath') const rcPath = exports.rcPath = ( process.env.VUE_CLI_CONFIG_PATH || - xdgConfigPath('.vuerc') || + xdgConfigPath() || + windowsConfigPath() || path.join(os.homedir(), '.vuerc') ) diff --git a/packages/@vue/cli/lib/util/rcPath.js b/packages/@vue/cli/lib/util/rcPath.js new file mode 100644 index 000000000..5a20df669 --- /dev/null +++ b/packages/@vue/cli/lib/util/rcPath.js @@ -0,0 +1,37 @@ +const fs = require('fs') +const os = require('os') +const path = require('path') + +exports.xdgConfigPath = () => { + const xdgConfigHome = process.env.XDG_CONFIG_HOME + if (xdgConfigHome) { + const rcDir = path.join(xdgConfigHome, 'vue') + if (!fs.existsSync(rcDir)) { + fs.mkdirSync(rcDir, 0o700) + } + return path.join(rcDir, '.vuerc') + } +} + +exports.windowsConfigPath = file => { + if (process.platform !== 'win32') { + return + } + const appData = process.env.APPDATA + if (appData) { + const rcDir = path.join(appData, 'vue') + if (!fs.existsSync(rcDir)) { + fs.mkdirSync(rcDir) + } + const rcPath = path.join(rcDir, '.vuerc') + // migration for < 3.0.0-rc.7 + const oldRcFile = path.join(os.homedir(), '.vuerc') + if (fs.existsSync(oldRcFile)) { + fs.writeFileSync(rcPath, fs.readFileSync(oldRcFile)) + const chalk = require('chalk') + console.log(`Detected ${chalk.cyan(`.vuerc`)} in ${chalk.cyan(path.dirname(oldRcFile))}...`) + console.log(`Migrated to ${chalk.cyan(rcPath)}.`) + } + return rcPath + } +} diff --git a/packages/@vue/cli/lib/util/xdgConfig.js b/packages/@vue/cli/lib/util/xdgConfig.js deleted file mode 100644 index dfd2cccef..000000000 --- a/packages/@vue/cli/lib/util/xdgConfig.js +++ /dev/null @@ -1,15 +0,0 @@ -const fs = require('fs') -const path = require('path') - -exports.xdgConfigPath = (file) => { - const xdgConfigHome = process.env.XDG_CONFIG_HOME - if (xdgConfigHome) { - const rcDir = path.join(xdgConfigHome, 'vue') - if (!fs.existsSync(rcDir)) { - fs.mkdirSync(rcDir, 0o700) - } - return path.join(rcDir, file) - } - - return undefined -}