forked from opitzconsulting/jquery-mobile-angular-adapter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.js
37 lines (29 loc) · 1.17 KB
/
build.js
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
var fs = require("fs");
var uglify = require('uglify-js');
var encoding = "utf-8";
var pjson = require('./package.json');
function readVersion() {
return pjson.version;
}
var versionPlaceholder = "${project.version}";
var includeRegex = /<jsp:include page="(.*)"\/>/g;
function compress(instring, outfile) {
var jsp = uglify.parser,
pro = uglify.uglify;
var ast = jsp.parse(instring);
ast = pro.ast_mangle(ast);
ast = pro.ast_squeeze(ast);
return pro.gen_code(ast);
}
function build(inputName, outputName, version) {
var input = fs.readFileSync(inputName, encoding);
input = input.replace(versionPlaceholder, version);
input = input.replace(includeRegex, function(data, fileName) {
return fs.readFileSync("src/main/webapp/"+fileName,encoding);
});
fs.writeFileSync('compiled/'+outputName+'-'+version+'.js', input, encoding);
fs.writeFileSync('compiled/min/'+outputName+'-'+version+'.js', compress(input), encoding);
}
var v = readVersion();
build('src/main/webapp/jqm-angular.jsp', 'jquery-mobile-angular-adapter', v);
build('src/main/webapp/jqm-angular-standalone.jsp', 'jquery-mobile-angular-adapter-standalone', v);