mirror of https://github.com/webpack/webpack.git
33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
|
/*
|
||
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
||
|
Author Tobias Koppers @sokra
|
||
|
*/
|
||
|
var RawSource = require("webpack-core/lib/RawSource");
|
||
|
|
||
|
function EvalDevToolModuleTemplatePlugin(sourceUrlComment) {
|
||
|
this.sourceUrlComment = sourceUrlComment || "//# sourceURL=[url]";
|
||
|
}
|
||
|
module.exports = EvalDevToolModuleTemplatePlugin;
|
||
|
|
||
|
EvalDevToolModuleTemplatePlugin.prototype.apply = function(moduleTemplate) {
|
||
|
var self = this;
|
||
|
moduleTemplate.plugin("module", function(source, module, chunk) {
|
||
|
var content = source.source();
|
||
|
var moduleName = module.readableIdentifier(this.requestShortener);
|
||
|
var str = moduleName;
|
||
|
str = str.split("!");
|
||
|
str = str.pop() + (str.length > 0 ? " " + str.join("!") : "");
|
||
|
var footer = ["\n",
|
||
|
"// WEBPACK FOOTER",
|
||
|
"// module.id = " + module.id,
|
||
|
"// module.readableIdentifier = " + moduleName,
|
||
|
self.sourceUrlComment.replace(/\[url\]/g, "webpack-module:///" + encodeURI(str).replace(/%2F/g, "/").replace(/%20/g, "_").replace(/%5E/g, "^").replace(/%5C/g, "\\").replace(/\?/, "%3F").replace(/^\//, ""))
|
||
|
].join("\n");
|
||
|
return new RawSource("eval(" + JSON.stringify(content + footer) + ");" );
|
||
|
});
|
||
|
moduleTemplate.plugin("hash", function(hash) {
|
||
|
hash.update("EvalDevToolModuleTemplatePlugin");
|
||
|
hash.update("2");
|
||
|
});
|
||
|
};
|