Skip to content

Commit 29b05bb

Browse files
committed
Merge pull request #57 from bkvfoundry/caching-parallel-builds
allow parallel bundles to isolate their css source caches
2 parents 18df7ce + ab0da81 commit 29b05bb

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

index.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,11 @@ module.exports = function (browserify, options) {
101101

102102
var cssOutFilename = options.output || options.o;
103103
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] || {};
104109

105110
// PostCSS plugins passed to FileSystemLoader
106111
var plugins = options.use || options.u;
@@ -166,7 +171,7 @@ module.exports = function (browserify, options) {
166171
assign(tokensByFile, loader.tokensByFile);
167172

168173
// store this file's source to be written out to disk later
169-
sourceByFile[filename] = loader.finalSource;
174+
sourceByFile[sourceKey][filename] = loader.finalSource;
170175

171176
compiledCssStream.push(loader.finalSource);
172177

@@ -190,8 +195,8 @@ module.exports = function (browserify, options) {
190195
bundle.emit('css stream', compiledCssStream);
191196

192197
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]);
195200
var css;
196201

197202
// end the output stream
@@ -200,7 +205,7 @@ module.exports = function (browserify, options) {
200205
// write the css file
201206
if (cssOutFilename) {
202207
css = files.map(function (file) {
203-
return sourceByFile[file];
208+
return sourceByFile[sourceKey][file];
204209
}).join('\n');
205210

206211
fs.writeFile(cssOutFilename, css, function (err) {

0 commit comments

Comments
 (0)