UNPKG

2.15 kBJavaScriptView Raw
1var _ = require("lodash")
2 , browserify = require("browserify")
3 , config = require("./config")
4 , concat = require("concat-stream")
5 , es = require("event-stream")
6 , fs = require("fs")
7 , path = require("path")
8 , Uglify = require("./uglify_bundle")
9 , utils = require("./utils")
10 , watcher = require("./watch_bundle")
11
12
13var inPaths = utils.fileIn(config.get("input"))
14var outPaths = utils.fileRegExp(config.get("ext"), config.get("output"));
15
16function bundleShare(b, fileStream) {
17 b.bundle()
18 .on("data", function(err){
19 if(err.message)
20 console.log(err.toString());
21 // this.close();
22 })
23 .pipe(fileStream());
24}
25
26
27module.exports = function(files, minify){
28 minify = minify || false;
29
30 var fileStream;
31
32 var inputs = _.map(files, function(f){
33 return inPaths(f);
34 })
35
36 var output = utils.setOutpaths(files, minify);
37 var uglify = (minify) ? Uglify(files) : null;
38
39 var bundle = browserify({entries:inputs, extensions:config.get("ext"), debug:true, cache: {}, packageCache: {}})
40 if(!_.isEmpty(config.get("ignore"))){
41 _.forEach(config.get("ignore"), function(ig){
42 bundle.ignore(ig)
43 })
44 }
45 var obj = {
46 addTransforms:function(){
47 _.forEach(config.get("transforms"), function(t){
48 if(_.isArray(t)){
49 bundle.transform(t[0], t[1]);
50 } else {
51 bundle.transform(t)
52 }
53
54 })
55
56 return obj;
57 }
58 , build:function(factor){
59 if(_.isUndefined(fileStream)) return;
60 if(factor){
61 bundle.plugin("factor-bundle", { outputs:output() });
62 }
63
64 bundleShare(bundle, fileStream);
65 }
66 , getBundle:function(){return bundle;}
67 , setFileStream:function(name, server){
68 if(_.isUndefined(fileStream)){
69 fileStream = utils.writeFile(name, uglify, server);
70 }
71
72 return obj;
73 }
74 , watch:function(factor){
75 if(_.isUndefined(fileStream)) return;
76 var w = watcher(bundle, bundleShare);
77 if(factor) w.addFactorBundle(output)
78 w.startWatching(fileStream);
79 bundleShare(bundle, fileStream);
80 }
81
82 }
83
84 return obj;
85
86}
\No newline at end of file