mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-14 03:11:19 -06:00
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
const fs = require('fs-extra')
|
|
const os = require('os')
|
|
const path = require('path')
|
|
|
|
const xdgConfigPath = file => {
|
|
const xdgConfigHome = process.env.XDG_CONFIG_HOME
|
|
if (xdgConfigHome) {
|
|
const rcDir = path.join(xdgConfigHome, 'vue')
|
|
if (!fs.existsSync(rcDir)) {
|
|
fs.ensureDirSync(rcDir, 0o700)
|
|
}
|
|
return path.join(rcDir, file)
|
|
}
|
|
}
|
|
|
|
// migration for 3.0.0-rc.7
|
|
// we introduced a change storing .vuerc in AppData, but the benefit isn't
|
|
// really obvious so we are reverting it to keep consistency across OSes
|
|
const migrateWindowsConfigPath = file => {
|
|
if (process.platform !== 'win32') {
|
|
return
|
|
}
|
|
const appData = process.env.APPDATA
|
|
if (appData) {
|
|
const rcDir = path.join(appData, 'vue')
|
|
const rcFile = path.join(rcDir, file)
|
|
const properRcFile = path.join(os.homedir(), file)
|
|
if (fs.existsSync(rcFile)) {
|
|
try {
|
|
if (fs.existsSync(properRcFile)) {
|
|
fs.removeSync(rcFile)
|
|
} else {
|
|
fs.moveSync(rcFile, properRcFile)
|
|
}
|
|
} catch (e) {}
|
|
}
|
|
}
|
|
}
|
|
|
|
exports.getRcPath = file => {
|
|
migrateWindowsConfigPath(file)
|
|
return (
|
|
process.env.VUE_CLI_CONFIG_PATH ||
|
|
xdgConfigPath(file) ||
|
|
path.join(os.homedir(), file)
|
|
)
|
|
}
|