1 | var bundlpack = require('../index.js');
|
2 | var bytes = require('bytes');
|
3 | var consoleTable = require('console.table');
|
4 | var del = require('del');
|
5 | var fs = require('fs');
|
6 | var lessProcessor = require('bundl-pack-less');
|
7 | var uglify = require('uglify-js');
|
8 | var utils = require('seebigs-utils');
|
9 |
|
10 | var args = utils.args();
|
11 |
|
12 | var outputPath = './test/compare/';
|
13 | var entryPath = './test/fixtures/commonjs/entry.js';
|
14 | var entryContents = utils.readFile(entryPath);
|
15 | var paths = ['test/fixtures/commonjs'];
|
16 | var autoInject = !!args.autoInject;
|
17 |
|
18 | function mockContents(c) {
|
19 | var _c = c;
|
20 | return {
|
21 | getString: function () {
|
22 | return _c;
|
23 | },
|
24 | set: function (newC) {
|
25 | _c = newC;
|
26 | },
|
27 | };
|
28 | }
|
29 |
|
30 | var r = {
|
31 | name: 'my_bundle.js',
|
32 | src: '../fixtures/commonjs/entry.js',
|
33 | contents: mockContents(entryContents),
|
34 | sourcemaps: [],
|
35 | };
|
36 |
|
37 |
|
38 | del.sync([__dirname + '/compare/']);
|
39 |
|
40 |
|
41 | require('./compare_browserify.js')(entryPath, outputPath, autoInject);
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 | var bp = bundlpack({
|
48 | paths: paths,
|
49 | css: {
|
50 | autoInject: !!autoInject
|
51 | },
|
52 | json: {
|
53 | autoInject: !!autoInject
|
54 | },
|
55 | less: lessProcessor,
|
56 | }).exec.call({}, r);
|
57 |
|
58 | function minify (contents) {
|
59 | var opts = {
|
60 | charset: 'utf8',
|
61 | fromString: true
|
62 | };
|
63 | return uglify.minify(contents, opts).code;
|
64 | }
|
65 |
|
66 | var outname = 'bundlpack';
|
67 | var contents = bp.contents.getString();
|
68 | utils.writeFile(__dirname + '/compare/' + outname + '.js', contents, done);
|
69 | utils.writeFile(__dirname + '/compare/' + outname + '.min.js', minify(contents), done);
|
70 |
|
71 |
|
72 |
|
73 |
|
74 | var filesWritten = 0;
|
75 | function done () {
|
76 | filesWritten++;
|
77 | if (filesWritten >= 2) {
|
78 | setTimeout(displayComparisonTable, 1500);
|
79 | }
|
80 | }
|
81 |
|
82 | function displayComparisonTable () {
|
83 | var finalFiles = utils.listFiles(__dirname + '/compare');
|
84 | var toTable = [];
|
85 | finalFiles.forEach(function (ff) {
|
86 | var stats = fs.statSync(ff);
|
87 | toTable.push({
|
88 | bundle: ff.split('/').pop(),
|
89 | size: stats.size,
|
90 | readable: bytes(stats.size)
|
91 | });
|
92 | });
|
93 | toTable.sort(function (a, b) {
|
94 | if (a.size > b.size) {
|
95 | return 1
|
96 | } else {
|
97 | return -1;
|
98 | }
|
99 | });
|
100 | console.log();
|
101 | console.table(toTable);
|
102 | }
|