diff --git a/packages/@vue/cli-ui/locales/en.json b/packages/@vue/cli-ui/locales/en.json
index dfef1d1b3..603006b74 100644
--- a/packages/@vue/cli-ui/locales/en.json
+++ b/packages/@vue/cli-ui/locales/en.json
@@ -112,7 +112,8 @@
},
"report-bug": "Report bug",
"translate": "Help translate",
- "dark-mode": "Toggle dark mode"
+ "dark-mode": "Toggle dark mode",
+ "reset-plugin-api": "Refresh plugins API"
},
"suggestion-bar": {
"suggestion": "Suggestion",
diff --git a/packages/@vue/cli-ui/src/components/StatusBar.vue b/packages/@vue/cli-ui/src/components/StatusBar.vue
index 933ef0f70..2e529dbee 100644
--- a/packages/@vue/cli-ui/src/components/StatusBar.vue
+++ b/packages/@vue/cli-ui/src/components/StatusBar.vue
@@ -70,6 +70,13 @@
>
+
+
+
@@ -79,6 +86,8 @@ import PROJECT_CURRENT from '../graphql/projectCurrent.gql'
import CONSOLE_LOG_LAST from '../graphql/consoleLogLast.gql'
import CONSOLE_LOG_ADDED from '../graphql/consoleLogAdded.gql'
import DARK_MODE_SET from '../graphql/darkModeSet.gql'
+import PLUGIN_RESET_API from '../graphql/pluginResetApi.gql'
+import { resetApollo } from '../vue-apollo'
let lastRoute
@@ -174,6 +183,14 @@ export default {
toggleDarkMode () {
this.applyDarkMode(!this.darkMode)
+ },
+
+ async resetPluginApi () {
+ await this.$apollo.mutate({
+ mutation: PLUGIN_RESET_API
+ })
+
+ await resetApollo()
}
}
}
diff --git a/packages/@vue/cli-ui/src/components/TopBar.vue b/packages/@vue/cli-ui/src/components/TopBar.vue
index cf2826984..8088eef88 100644
--- a/packages/@vue/cli-ui/src/components/TopBar.vue
+++ b/packages/@vue/cli-ui/src/components/TopBar.vue
@@ -69,7 +69,7 @@ export default {
}
})
- resetApollo()
+ await resetApollo()
}
}
}
diff --git a/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js b/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js
index 1d6185fbf..f11f40efb 100644
--- a/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js
+++ b/packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js
@@ -132,6 +132,8 @@ function resetPluginApi (context) {
if (currentView) views.open(currentView.id)
}
})
+
+ return true
}
function runPluginApi (id, context, fileName = 'ui') {
diff --git a/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js b/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js
index 5a30e7038..e2c76512a 100644
--- a/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js
+++ b/packages/@vue/cli-ui/src/graphql-api/schema/plugin.js
@@ -18,6 +18,7 @@ extend type Mutation {
pluginUpdate (id: ID!): Plugin
pluginActionCall (id: ID!, params: JSON): PluginActionResult
pluginsUpdate: [Plugin]
+ pluginResetApi: Boolean
}
extend type Subscription {
@@ -82,7 +83,8 @@ exports.resolvers = {
pluginFinishInstall: (root, args, context) => plugins.finishInstall(context),
pluginUpdate: (root, { id }, context) => plugins.update(id, context),
pluginActionCall: (root, args, context) => plugins.callAction(args, context),
- pluginsUpdate: (root, args, context) => plugins.updateAll(context)
+ pluginsUpdate: (root, args, context) => plugins.updateAll(context),
+ pluginResetApi: (root, args, context) => plugins.resetPluginApi(context)
},
Subscription: {
diff --git a/packages/@vue/cli-ui/src/graphql/pluginResetApi.gql b/packages/@vue/cli-ui/src/graphql/pluginResetApi.gql
new file mode 100644
index 000000000..94a16175d
--- /dev/null
+++ b/packages/@vue/cli-ui/src/graphql/pluginResetApi.gql
@@ -0,0 +1,3 @@
+mutation pluginResetApi {
+ pluginResetApi
+}
\ No newline at end of file