@@ -14,7 +14,7 @@ const { formatFeatures } = require('./util/features')
14
14
const loadLocalPreset = require ( './util/loadLocalPreset' )
15
15
const loadRemotePreset = require ( './util/loadRemotePreset' )
16
16
const generateReadme = require ( './util/generateReadme' )
17
- const { resolvePkg } = require ( '@vue/cli-shared-utils' )
17
+ const { resolvePkg, isOfficialPlugin } = require ( '@vue/cli-shared-utils' )
18
18
19
19
const {
20
20
defaults,
@@ -144,13 +144,17 @@ module.exports = class Creator extends EventEmitter {
144
144
return
145
145
}
146
146
147
- // Note: the default creator includes no more than `@vue/cli-*` & `@vue/babel-preset-env`,
148
- // so it is fine to only test `@vue` prefix.
149
- // Other `@vue/*` packages' version may not be in sync with the cli itself.
150
- pkg . devDependencies [ dep ] = (
151
- preset . plugins [ dep ] . version ||
152
- ( ( / ^ @ v u e / . test ( dep ) ) ? `~${ latestMinor } ` : `latest` )
153
- )
147
+ let { version } = preset . plugins [ dep ]
148
+
149
+ if ( ! version ) {
150
+ if ( isOfficialPlugin ( dep ) || dep === '@vue/cli-service' || dep === '@vue/babel-preset-env' ) {
151
+ version = isTestOrDebug ? `file:../../${ dep } ` : `~${ latestMinor } `
152
+ } else {
153
+ version = 'latest'
154
+ }
155
+ }
156
+
157
+ pkg . devDependencies [ dep ] = version
154
158
} )
155
159
156
160
// write package.json
@@ -197,9 +201,7 @@ module.exports = class Creator extends EventEmitter {
197
201
log ( `📦 Installing additional dependencies...` )
198
202
this . emit ( 'creation' , { event : 'deps-install' } )
199
203
log ( )
200
- if ( ! isTestOrDebug ) {
201
- await pm . install ( )
202
- }
204
+ await pm . install ( )
203
205
204
206
// run complete cbs if any (injected by generators)
205
207
log ( `⚓ Running completion hooks...` )
0 commit comments