A plugin for both browserify and depsify, to allow to add dependencies not detected from code.
In the following example,
entry.css depends upon entry-deps.css,
and extra.css upon extra-deps.css.
We can make entry.css depends on extra.css using this plugin.
varreduce=require('reduce-css')varpath=require('path')varb=reduce.create('entry.css',{basedir: path.join(__dirname,'src')},'bundle.css')b.plugin('deps-patch')b.bundle().pipe(b.dest(path.join(__dirname,'build')))// add dependenciessetTimeout(function(){b.emit('deps-patch.update',[// it claims that entry.css should depend on extra.css// even if entry.css does not do it in the code{file: 'entry.css',deps: ['extra.css']},])},200)The result would be something like:
.entry-deps{} /* from entry-deps.css */
.extra-deps{} /* from extra-deps.css */
.extra{} /* from extra.css */
.entry{} /* from entry.css */The deps-patch.update event should be fired whenever you want to add new dependencies.
b.plugin('deps-patch')b.emit('deps-patch.update',depsPatch)depsPatch is an array of rows.
A row is just an object with fields:
file:String. the file path to the dependentdeps:Array. an array of file path to modules the dependent should depend upon.