@@ -404,6 +404,11 @@ function readImportedContent(
404404function insertRules ( atRule , parsedAtImport , newStyles ) {
405405 var newNodes = newStyles . nodes
406406
407+ // save styles
408+ newNodes . forEach ( function ( node ) {
409+ node . parent = undefined
410+ } )
411+
407412 // wrap rules if the @import have a media query
408413 if ( parsedAtImport . media && parsedAtImport . media . length ) {
409414 // better output
@@ -415,35 +420,15 @@ function insertRules(atRule, parsedAtImport, newStyles) {
415420 var wrapper = postcss . atRule ( {
416421 name : "media" ,
417422 params : parsedAtImport . media ,
423+ source : atRule . source ,
418424 } )
419425
420- // keep AST clean
421- newNodes . forEach ( function ( node ) {
422- node . parent = wrapper
423- } )
424- wrapper . source = atRule . source
425-
426- // copy code style
427- wrapper . raws . before = atRule . raws . before
428- wrapper . raws . after = atRule . raws . after
429-
430426 // move nodes
431- wrapper . nodes = newNodes
432- newNodes = [ wrapper ]
433- }
434- else if ( newNodes && newNodes . length ) {
435- newNodes [ 0 ] . raws . before = atRule . raws . before
427+ newNodes = wrapper . append ( newNodes )
436428 }
437429
438- // keep AST clean
439- newNodes . forEach ( function ( node ) {
440- node . parent = atRule . parent
441- } )
442-
443430 // replace atRule by imported nodes
444- var nodes = atRule . parent . nodes
445- nodes . splice . apply ( nodes , [ nodes . indexOf ( atRule ) , 0 ] . concat ( newNodes ) )
446- atRule . remove ( )
431+ atRule . replaceWith ( newNodes )
447432}
448433
449434/**
0 commit comments