Skip to content

Instantly share code, notes, and snippets.

@bmatusiak
Last active December 17, 2015 08:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bmatusiak/5578424 to your computer and use it in GitHub Desktop.
Save bmatusiak/5578424 to your computer and use it in GitHub Desktop.
PHPJS builder in nodejs
var fs = require("fs");
var dir = __dirname+"/functions";
var mainDirs = [];
var mainFiles = [];
var files = fs.readdirSync(dir);
for(var i in files){
var fileStats = fs.statSync(dir+"/"+files[i]);
if(fileStats.isDirectory()){
mainDirs.push(dir+"/"+files[i]);
}
}
for(var j in mainDirs){
var files2 = fs.readdirSync(mainDirs[j]);
for(var k in files2){
var currentFile = mainDirs[j]+"/"+files2[k];
var fileStats2 = fs.statSync(currentFile);
if(fileStats2.isFile()){
mainFiles.push({
id:files2[k].replace(".js","") ,
file: mainDirs[j]+"/"+files2[k]
});
}
}
}
var compiledFileS = "var PHPJS = {\n";
var compiledFileE = "}";
for(var l in mainFiles){
compiledFileS += '"'+mainFiles[l].id+'" : ' + fs.readFileSync(mainFiles[l].file);
if(mainFiles.length-1 != l)
compiledFileS += ",";
}
compiledFileS += compiledFileE;
fs.writeFileSync(__dirname+"/out.js", compiledFileS );
function doCompress(){
//npm install node-minify
var compressor = require('node-minify');
// Using UglifyJS for JS
new compressor.minify({
type: 'uglifyjs',
fileIn: __dirname+"/out.js",
fileOut: __dirname+"/out-min.js",
callback: function(err){
console.log(err);
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment