updated package.json with minify.js deps, added minify.js

This commit is contained in:
Lachlan Collins
2013-03-25 14:06:16 +10:00
parent 6590eba731
commit ac063c437a
2 changed files with 73 additions and 6 deletions
+65
View File
@@ -0,0 +1,65 @@
var cleanCSS = require('clean-css');
var UglifyJS = require("uglify-js");
var glob = require('glob');
var fs = require('fs');
var natcompare = require('./natcompare.js');
var packages = Array();
glob("../ajax/libs/**/package.json", function (error, matches) {
matches.forEach(function(element){
var package = JSON.parse(fs.readFileSync(element, 'utf8'));
package.assets = Array();
var versions = glob.sync("../ajax/libs/"+package.name+"/!(package.json)");
versions.forEach(function(version) {
var temp = Object();
temp.version = version.replace(/^.+\//, "");
temp.files = glob.sync(version + "/**/*.*");
for (var i = 0; i < temp.files.length; i++){
var regex = /(?:^.+\/)?(.+?)([\.-](?:min))?\.((?:js)|(?:css))$/ig;
var result = regex.exec(temp.files[i]);
//result[0] Original Input
//result[1] Filename
//result[2] -/.min
//result[3] file extension
if (result == null) {
continue;
}
if (typeof result[2] !== "undefined") {
continue;
}
var min_exists = false;
for (var j = 0; j < temp.files.length; j++) {
var regex = /(?:^.+\/)?(.+?)([\.-](?:min))?\.((?:js)|(?:css))$/ig;
var exists = regex.exec(temp.files[j]);
if (exists == null || exists[0] == result[0]) { //Matching Same File
continue;
}
//Same name, same extension
if (exists[1] == result[1] && exists[3] == result[3] && typeof exists[2] !== "undefined") {
min_exists = true;
break;
}
}
if (!min_exists) {
if (result[3] == "js") {
var source = fs.readFileSync(temp.files[i], 'utf8');
var minimized = UglifyJS.minify(source, {fromString: true});
fs.writeFileSync(version + "/" + result[1] + ".min.js", minimized, 'utf8');
console.log("minimized file: " + version + "/" + result[1] + ".min.js");
} else if (result[3] == "css") {
var source = fs.readFileSync(temp.files[i], 'utf8');
var minimized = cleanCSS.process(source);
fs.writeFileSync(version + "/" + result[1] + ".min.css", minimized, 'utf8');
console.log("minimized file: " + version + "/" + result[1] + ".min.css");
}
}
}
});
});
});
+8 -6
View File
@@ -8,17 +8,19 @@
"type": "git",
"url": "git://github.com/cdnjs/cdnjs.git"
},
"scripts": {
"build": "./build/build.js",
"test": "vows"
},
"dependencies": {},
"dependencies": {
"clean-css": "~0.10.2",
"uglify-js": "~2.2.5"
},
"devDependencies": {
"glob": "3.1.9",
"jslint": "0.1.8",
"vows": "0.7.0",
"JSV": "4.0.1"
"glob": "3.1.9",
"jslint": "0.1.8",
"vows": "0.7.0",
"JSV": "4.0.1"
},
"optionalDependencies": {},
"engines": {