File tree Expand file tree Collapse file tree 2 files changed +28
-5
lines changed
packages/@vue/cli-service Expand file tree Collapse file tree 2 files changed +28
-5
lines changed Original file line number Diff line number Diff line change @@ -233,6 +233,28 @@ test('api: configureWebpack returning object', () => {
233
233
expect ( config . output . path ) . toBe ( 'test-dist-3' )
234
234
} )
235
235
236
+ test ( 'api: configureWebpack preserve ruleNames' , ( ) => {
237
+ const service = createMockService ( [
238
+ {
239
+ id : 'babel' ,
240
+ apply : require ( '@vue/cli-plugin-babel' )
241
+ } ,
242
+ {
243
+ id : 'test' ,
244
+ apply : api => {
245
+ api . configureWebpack ( {
246
+ module : {
247
+ rules : [ ]
248
+ }
249
+ } )
250
+ }
251
+ }
252
+ ] )
253
+
254
+ const config = service . resolveWebpackConfig ( )
255
+ expect ( config . module . rules [ 0 ] . __ruleNames ) . toEqual ( [ 'js' ] )
256
+ } )
257
+
236
258
test ( 'api: configureDevServer' , ( ) => {
237
259
const cb = ( ) => { }
238
260
const service = createMockService ( [ {
Original file line number Diff line number Diff line change @@ -234,8 +234,8 @@ module.exports = class Service {
234
234
// vue inspect works properly.
235
235
if ( config !== original ) {
236
236
cloneRuleNames (
237
- config . module . rules ,
238
- original . module . rules
237
+ config . module && config . module . rules ,
238
+ original . module && original . module . rules
239
239
)
240
240
}
241
241
@@ -352,14 +352,15 @@ function removeSlash (config, key) {
352
352
}
353
353
354
354
function cloneRuleNames ( to , from ) {
355
+ if ( ! to || ! from ) {
356
+ return
357
+ }
355
358
from . forEach ( ( r , i ) => {
356
359
if ( to [ i ] ) {
357
360
Object . defineProperty ( to [ i ] , '__ruleNames' , {
358
361
value : r . __ruleNames
359
362
} )
360
- if ( to [ i ] . oneOf && r . oneOf ) {
361
- cloneRuleNames ( to [ i ] . oneOf , r . oneOf )
362
- }
363
+ cloneRuleNames ( to [ i ] . oneOf , r . oneOf )
363
364
}
364
365
} )
365
366
}
You can’t perform that action at this time.
0 commit comments