Files
vue-cli/packages/@vue/cli/lib/util/confirmIfGitDirty.js
T
2019-08-08 10:40:48 +08:00

33 lines
811 B
JavaScript

const execa = require('execa')
const inquirer = require('inquirer')
const { warn, hasProjectGit } = require('@vue/cli-shared-utils')
module.exports = async function confirmIfGitDirty (context) {
if (process.env.VUE_CLI_SKIP_DIRTY_GIT_PROMPT || process.env.VUE_CLI_API_MODE) {
return true
}
process.env.VUE_CLI_SKIP_DIRTY_GIT_PROMPT = true
if (!hasProjectGit(context)) {
return true
}
const { stdout } = await execa('git', ['status', '--porcelain'], { cwd: context })
if (!stdout) {
return true
}
warn(`There are uncommited changes in the current repository, it's recommended to commit or stash them first.`)
const { ok } = await inquirer.prompt([
{
name: 'ok',
type: 'confirm',
message: 'Still proceed?',
default: false
}
])
return ok
}