added BannerPlugin

This commit is contained in:
Tobias Koppers 2013-05-12 23:16:22 +02:00
parent 72f29bf81c
commit 96275187cc
2 changed files with 33 additions and 1 deletions

32
lib/BannerPlugin.js Normal file
View File

@ -0,0 +1,32 @@
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
var ConcatSource = require("webpack-core/lib/ConcatSource");
function wrapComment(str) {
if(str.indexOf("\n") < 0) return "/*! " + str + " */";
return "/*!\n * " + str.split("\n").join("\n * ") + "\n */";
}
function BannerPlugin(banner, options) {
if(!options) options = {};
this.banner = options.raw ? banner : wrapComment(banner);
this.entryOnly = options.entryOnly;
}
module.exports = BannerPlugin;
BannerPlugin.prototype.apply = function(compiler) {
var banner = this.banner;
var entryOnly = this.entryOnly;
compiler.plugin("compilation", function(compilation) {
compilation.plugin("optimize-chunk-assets", function(chunks, callback) {
chunks.forEach(function(chunk) {
if(entryOnly && !chunk.entry) return;
chunk.files.forEach(function(file) {
compilation.assets[file] = new ConcatSource(banner, "\n", compilation.assets[file]);
});
});
callback();
});
});
};

View File

@ -1,6 +1,6 @@
{
"name": "webpack",
"version": "0.10.0-beta9",
"version": "0.10.0-beta10",
"author": "Tobias Koppers @sokra",
"description": "Packs CommonJs/AMD/Labeled Modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jade, coffee, css, less, ... and your custom stuff.",
"dependencies": {