1 | const inquirer = require('inquirer')
|
2 | const { error } = require('@vue/cli-shared-utils')
|
3 |
|
4 | const Upgrader = require('./Upgrader')
|
5 | const confirmIfGitDirty = require('./util/confirmIfGitDirty')
|
6 |
|
7 | async 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 |
|
46 | module.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 | }
|