-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathjsbundle.js
More file actions
44 lines (38 loc) · 1.15 KB
/
jsbundle.js
File metadata and controls
44 lines (38 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var parseConfig = require('./lib/parse-config');
var Bundle = require('./lib/bundle');
var uglifyjs = require('uglify-js');
function _uglify(code, consolidate) {
var ast = uglifyjs.parser.parse(code);
if (consolidate) {
ast = uglifyjs.consolidator.ast_consolidate(ast);
}
ast = uglifyjs.uglify.ast_mangle(ast);
ast = uglifyjs.uglify.ast_squeeze(ast);
ast = uglifyjs.uglify.ast_squeeze_more(ast);
return uglifyjs.uglify.gen_code(ast);
}
function compileBundle(configOrBundleDir, env, bundleUrl) {
var config;
if (typeof configOrBundleDir === 'string') {
var bundleDir = configOrBundleDir;
config = parseConfig(bundleDir, env);
} else {
config = configOrBundleDir;
}
if (bundleUrl) {
config.bundleUrl = bundleUrl;
}
var bundle = new Bundle(config);
var compiled = bundle.compile();
if (bundle.error) {
throw bundle.error;
} else if (config.minify) {
return _uglify(compiled, config.consolidate);
} else {
return compiled;
}
}
exports.createDevCdn = require('./lib/dev-cdn');
exports.parseConfig = parseConfig;
exports.Bundle = Bundle;
exports.compileBundle = exports.compilePackage = compileBundle;