@@ -38,6 +38,7 @@ const ipc = require('../utils/ipc')
38
38
const { log } = require ( '../utils/logger' )
39
39
40
40
const PROGRESS_ID = 'plugin-installation'
41
+ const CLI_SERVICE = '@vue/cli-service'
41
42
42
43
// Caches
43
44
const metadataCache = new LRU ( {
@@ -62,12 +63,12 @@ function getPath (id) {
62
63
63
64
function findPlugins ( deps ) {
64
65
return Object . keys ( deps ) . filter (
65
- key => isPlugin ( key )
66
+ id => isPlugin ( id ) || id === CLI_SERVICE
66
67
) . map (
67
68
id => ( {
68
69
id,
69
70
versionRange : deps [ id ] ,
70
- official : isOfficialPlugin ( id ) ,
71
+ official : isOfficialPlugin ( id ) || id === CLI_SERVICE ,
71
72
installed : fs . existsSync ( getPath ( id ) ) ,
72
73
website : getPluginLink ( id )
73
74
} )
@@ -77,8 +78,17 @@ function findPlugins (deps) {
77
78
function list ( file , context ) {
78
79
const pkg = folders . readPackage ( file , context )
79
80
plugins = [ ]
80
- plugins = plugins . concat ( findPlugins ( pkg . dependencies || { } ) )
81
81
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
+
82
92
resetPluginApi ( context )
83
93
return plugins
84
94
}
@@ -93,7 +103,6 @@ function resetPluginApi (context) {
93
103
94
104
pluginApi = new PluginApi ( context )
95
105
// Run Plugin API
96
- runPluginApi ( '@vue/cli-service' , context )
97
106
plugins . forEach ( plugin => runPluginApi ( plugin . id , context ) )
98
107
runPluginApi ( cwd . get ( ) , context , 'vue-cli-ui' )
99
108
// Add client addons
0 commit comments