init
This commit is contained in:
58
public/tinymce/tools/tasks/bundle.js
Normal file
58
public/tinymce/tools/tasks/bundle.js
Normal file
@@ -0,0 +1,58 @@
|
||||
var fs = require("fs");
|
||||
var path = require("path");
|
||||
|
||||
module.exports = function (grunt) {
|
||||
grunt.registerMultiTask("bundle", "Bundles code, themes and bundles to a single file.", function () {
|
||||
var options, contents, themes, plugins;
|
||||
|
||||
function appendFile(src) {
|
||||
src = src.replace(/\\/g, '/');
|
||||
|
||||
if (fs.existsSync(src)) {
|
||||
grunt.log.writeln("Appending file:", src);
|
||||
contents += grunt.file.read(src);
|
||||
} else {
|
||||
grunt.fail.fatal("Could not find file: " + src);
|
||||
}
|
||||
}
|
||||
|
||||
function append(dirPath, fileName, value) {
|
||||
if (value) {
|
||||
value.split(/,/).forEach(function (src) {
|
||||
appendFile(path.join(dirPath, src, fileName));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
options = grunt.config([this.name, this.target]).options;
|
||||
options.themesDir = options.themesDir || "plugins";
|
||||
options.themeFileName = options.themeFileName || "theme.min.js";
|
||||
options.pluginsDir = options.pluginsDir || "plugins";
|
||||
options.pluginFileName = options.pluginFileName || "plugin.min.js";
|
||||
options.outputPath = options.outputPath || "full.min.js";
|
||||
|
||||
themes = grunt.option("themes");
|
||||
plugins = grunt.option("plugins");
|
||||
|
||||
if (!themes && !plugins) {
|
||||
grunt.log.writeln("Use: grunt bundle --themes <comma separated list of themes> --plugins <comma separated list of plugins>");
|
||||
process.exit(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
contents = "";
|
||||
this.files.forEach(function (filePair) {
|
||||
filePair.src.forEach(function (src) {
|
||||
appendFile(src);
|
||||
});
|
||||
});
|
||||
|
||||
append(options.themesDir, options.themeFileName, themes);
|
||||
append(options.pluginsDir, options.pluginFileName, plugins);
|
||||
|
||||
if (contents.length > 0) {
|
||||
grunt.file.write(options.outputPath, contents);
|
||||
grunt.log.ok("Created bundle js:", options.outputPath);
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user