@@ -101,6 +101,11 @@ module.exports = function (browserify, options) {
101
101
102
102
var cssOutFilename = options . output || options . o ;
103
103
var jsonOutFilename = options . json || options . jsonOutput ;
104
+ var sourceKey = cssOutFilename ;
105
+
106
+ // keying our source caches by the name of our output file means we can
107
+ // isolate css compilation of seperate bundles that are running in parallel
108
+ sourceByFile [ sourceKey ] = sourceByFile [ sourceKey ] || { } ;
104
109
105
110
// PostCSS plugins passed to FileSystemLoader
106
111
var plugins = options . use || options . u ;
@@ -166,7 +171,7 @@ module.exports = function (browserify, options) {
166
171
assign ( tokensByFile , loader . tokensByFile ) ;
167
172
168
173
// store this file's source to be written out to disk later
169
- sourceByFile [ filename ] = loader . finalSource ;
174
+ sourceByFile [ sourceKey ] [ filename ] = loader . finalSource ;
170
175
171
176
compiledCssStream . push ( loader . finalSource ) ;
172
177
@@ -190,8 +195,8 @@ module.exports = function (browserify, options) {
190
195
bundle . emit ( 'css stream' , compiledCssStream ) ;
191
196
192
197
bundle . on ( 'end' , function ( ) {
193
- // Combine the collected sources into a single CSS file
194
- var files = Object . keys ( sourceByFile ) ;
198
+ // Combine the collected sources for a single bundle into a single CSS file
199
+ var files = Object . keys ( sourceByFile [ sourceKey ] ) ;
195
200
var css ;
196
201
197
202
// end the output stream
@@ -200,7 +205,7 @@ module.exports = function (browserify, options) {
200
205
// write the css file
201
206
if ( cssOutFilename ) {
202
207
css = files . map ( function ( file ) {
203
- return sourceByFile [ file ] ;
208
+ return sourceByFile [ sourceKey ] [ file ] ;
204
209
} ) . join ( '\n' ) ;
205
210
206
211
fs . writeFile ( cssOutFilename , css , function ( err ) {
0 commit comments