UNPKG

1.19 kBJavaScriptView Raw
1const inquirer = require('inquirer')
2const { error } = require('@vue/cli-shared-utils')
3
4const Upgrader = require('./Upgrader')
5const confirmIfGitDirty = require('./util/confirmIfGitDirty')
6
7async function upgrade (packageName, options, context = process.cwd()) {
8 if (!(await confirmIfGitDirty(context))) {
9 return
10 }
11
12 const upgrader = new Upgrader(context)
13
14 if (!packageName) {
15 if (options.to) {
16 error(`Must specify a package name to upgrade to ${options.to}`)
17 process.exit(1)
18 }
19
20 if (options.all) {
21 return upgrader.upgradeAll(options.next)
22 }
23
24 const upgradable = await upgrader.checkForUpdates(options.next)
25 if (upgradable) {
26 const { ok } = await inquirer.prompt([
27 {
28 name: 'ok',
29 type: 'confirm',
30 message: 'Continue to upgrade these plugins?',
31 default: true
32 }
33 ])
34
35 if (ok) {
36 return upgrader.upgradeAll(options.next)
37 }
38 }
39
40 return
41 }
42
43 return upgrader.upgrade(packageName, options)
44}
45
46module.exports = (...args) => {
47 return upgrade(...args).catch(err => {
48 error(err)
49 if (!process.env.VUE_CLI_TEST) {
50 process.exit(1)
51 }
52 })
53}