Skip to content

Commit f42632b

Browse files
authored
feat(ui): Display cli-service in plugins view (so it can be upgraded) (#1422)
* feat(ui): display cli-service in plugins view (so it can be upgraded) * test: fix plugins list * fix(ui): mark cli-service as official
1 parent 1c8f195 commit f42632b

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

packages/@vue/cli-service/logo.png

882 Bytes
Loading

packages/@vue/cli-ui/src/graphql-api/connectors/plugins.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const ipc = require('../utils/ipc')
3838
const { log } = require('../utils/logger')
3939

4040
const PROGRESS_ID = 'plugin-installation'
41+
const CLI_SERVICE = '@vue/cli-service'
4142

4243
// Caches
4344
const metadataCache = new LRU({
@@ -62,12 +63,12 @@ function getPath (id) {
6263

6364
function findPlugins (deps) {
6465
return Object.keys(deps).filter(
65-
key => isPlugin(key)
66+
id => isPlugin(id) || id === CLI_SERVICE
6667
).map(
6768
id => ({
6869
id,
6970
versionRange: deps[id],
70-
official: isOfficialPlugin(id),
71+
official: isOfficialPlugin(id) || id === CLI_SERVICE,
7172
installed: fs.existsSync(getPath(id)),
7273
website: getPluginLink(id)
7374
})
@@ -77,8 +78,17 @@ function findPlugins (deps) {
7778
function list (file, context) {
7879
const pkg = folders.readPackage(file, context)
7980
plugins = []
80-
plugins = plugins.concat(findPlugins(pkg.dependencies || {}))
8181
plugins = plugins.concat(findPlugins(pkg.devDependencies || {}))
82+
plugins = plugins.concat(findPlugins(pkg.dependencies || {}))
83+
84+
// Put cli service at the top
85+
const index = plugins.findIndex(p => p.id === CLI_SERVICE)
86+
if (index !== -1) {
87+
const service = plugins[index]
88+
plugins.splice(index, 1)
89+
plugins.unshift(service)
90+
}
91+
8292
resetPluginApi(context)
8393
return plugins
8494
}
@@ -93,7 +103,6 @@ function resetPluginApi (context) {
93103

94104
pluginApi = new PluginApi(context)
95105
// Run Plugin API
96-
runPluginApi('@vue/cli-service', context)
97106
plugins.forEach(plugin => runPluginApi(plugin.id, context))
98107
runPluginApi(cwd.get(), context, 'vue-cli-ui')
99108
// Add client addons

packages/@vue/cli-ui/tests/e2e/specs/g2-plugins.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
describe('Plugins', () => {
22
it('Should display the plugins', () => {
33
cy.visit('/')
4-
cy.get('.project-plugin-item').should('have.length', 2)
4+
cy.get('.project-plugin-item').should('have.length', 3)
55
})
66

77
it('Should add a plugin', () => {
@@ -26,6 +26,6 @@ describe('Plugins', () => {
2626
.should('be.visible')
2727
.should('not.have.class', 'disabled')
2828
.click()
29-
cy.get('.project-plugin-item').should('have.length', 3)
29+
cy.get('.project-plugin-item').should('have.length', 4)
3030
})
3131
})

0 commit comments

Comments
 (0)