2014-06-03 14:45:26 +08:00
|
|
|
/*
|
|
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
|
|
Author Tobias Koppers @sokra
|
|
|
|
*/
|
2015-12-30 00:44:55 +08:00
|
|
|
var RawSource = require("webpack-sources").RawSource;
|
2014-07-18 19:31:50 +08:00
|
|
|
var ModuleFilenameHelpers = require("./ModuleFilenameHelpers");
|
2014-06-03 14:45:26 +08:00
|
|
|
|
2014-07-18 19:31:50 +08:00
|
|
|
function EvalDevToolModuleTemplatePlugin(sourceUrlComment, moduleFilenameTemplate) {
|
2016-01-05 23:41:59 +08:00
|
|
|
this.sourceUrlComment = sourceUrlComment || "\n//# sourceURL=[url]";
|
2014-07-18 19:31:50 +08:00
|
|
|
this.moduleFilenameTemplate = moduleFilenameTemplate || "webpack:///[resourcePath]?[loaders]";
|
2014-06-03 14:45:26 +08:00
|
|
|
}
|
|
|
|
module.exports = EvalDevToolModuleTemplatePlugin;
|
|
|
|
|
|
|
|
EvalDevToolModuleTemplatePlugin.prototype.apply = function(moduleTemplate) {
|
|
|
|
var self = this;
|
2015-04-24 05:55:50 +08:00
|
|
|
moduleTemplate.plugin("module", function(source, module) {
|
2014-06-03 14:45:26 +08:00
|
|
|
var content = source.source();
|
2014-07-18 19:31:50 +08:00
|
|
|
var str = ModuleFilenameHelpers.createFilename(module, self.moduleFilenameTemplate, this.requestShortener);
|
2014-06-03 14:45:26 +08:00
|
|
|
var footer = ["\n",
|
2014-07-18 19:31:50 +08:00
|
|
|
ModuleFilenameHelpers.createFooter(module, this.requestShortener),
|
|
|
|
self.sourceUrlComment.replace(/\[url\]/g, encodeURI(str).replace(/%2F/g, "/").replace(/%20/g, "_").replace(/%5E/g, "^").replace(/%5C/g, "\\").replace(/^\//, ""))
|
2014-06-03 14:45:26 +08:00
|
|
|
].join("\n");
|
2015-07-13 06:20:09 +08:00
|
|
|
return new RawSource("eval(" + JSON.stringify(content + footer) + ");");
|
2014-06-03 14:45:26 +08:00
|
|
|
});
|
|
|
|
moduleTemplate.plugin("hash", function(hash) {
|
|
|
|
hash.update("EvalDevToolModuleTemplatePlugin");
|
|
|
|
hash.update("2");
|
|
|
|
});
|
|
|
|
};
|