feat: store rc file in AppData on windows

close #1957
This commit is contained in:
Evan You
2018-07-26 21:37:17 -04:00
parent e27e67923f
commit e970b1afc3
3 changed files with 40 additions and 17 deletions
+3 -2
View File
@@ -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')
)
+37
View File
@@ -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
}
}
-15
View File
@@ -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
}