more flexible source-map devtool parsing

This commit is contained in:
Tobias Koppers 2015-04-07 14:33:57 +02:00
parent b3059888da
commit c104323844
1 changed files with 19 additions and 58 deletions

View File

@ -175,67 +175,28 @@ WebpackOptionsApply.prototype.process = function(options, compiler) {
compiler.apply(new EvalDevToolModulePlugin("//# sourceURL=[url]", options.output.devtoolModuleFilenameTemplate));
else if(options.devtool === "#@eval")
compiler.apply(new EvalDevToolModulePlugin("//@ sourceURL=[url]\n//# sourceURL=[url]", options.output.devtoolModuleFilenameTemplate));
else if(options.devtool === "hidden-sourcemap" || options.devtool === "hidden-source-map")
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, false, options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "sourcemap" || options.devtool === "source-map")
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, null, options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "@sourcemap" || options.devtool === "@source-map")
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, "\n/*\n//@ sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "#sourcemap" || options.devtool === "#source-map")
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, "\n//# sourceMappingURL=[url]", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "#@sourcemap" || options.devtool === "#@source-map")
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "cheapsourcemap" || options.devtool === "cheap-source-map")
compiler.apply(new SourceMapDevToolPlugin({
filename: options.output.sourceMapFilename,
else if(options.devtool && (options.devtool.indexOf("sourcemap") >= 0 || options.devtool.indexOf("source-map") >= 0)) {
var hidden = options.devtool.indexOf("hidden") >= 0;
var inline = options.devtool.indexOf("inline") >= 0;
var evalWrapped = options.devtool.indexOf("eval") >= 0;
var cheap = options.devtool.indexOf("cheap") >= 0;
var moduleMaps = options.devtool.indexOf("module") >= 0;
var legacy = options.devtool.indexOf("@") >= 0;
var modern = options.devtool.indexOf("#") >= 0;
var comment = legacy && modern ? "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/" :
legacy ? "\n/*\n//@ sourceMappingURL=[url]\n*/" :
modern ? "\n//# sourceMappingURL=[url]" :
null;
compiler.apply(new (evalWrapped ? EvalSourceMapDevToolPlugin : SourceMapDevToolPlugin)({
filename: inline ? null : options.output.sourceMapFilename,
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
module: false, columns: false, lineToLine: options.output.devtoolLineToLine
}));
else if(options.devtool === "inlinesourcemap" ||
options.devtool === "inline-sourcemap" ||
options.devtool === "inline-source-map")
compiler.apply(new SourceMapDevToolPlugin(null, null, options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "@inlinesourcemap" ||
options.devtool === "@inline-sourcemap" ||
options.devtool === "@inline-source-map")
compiler.apply(new SourceMapDevToolPlugin(null, "\n/*\n//@ sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "#inlinesourcemap" ||
options.devtool === "#inline-sourcemap" ||
options.devtool === "#inline-source-map")
compiler.apply(new SourceMapDevToolPlugin(null, "\n//# sourceMappingURL=[url]", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "#@inlinesourcemap" ||
options.devtool === "#@inline-sourcemap" ||
options.devtool === "#@inline-source-map")
compiler.apply(new SourceMapDevToolPlugin(null, "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
else if(options.devtool === "cheapinlinesourcemap" || options.devtool === "cheap-inline-source-map")
compiler.apply(new SourceMapDevToolPlugin({
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
module: false, columns: false, lineToLine: options.output.devtoolLineToLine
}));
else if(options.devtool === "evalsourcemap" ||
options.devtool === "eval-sourcemap" ||
options.devtool === "eval-source-map")
compiler.apply(new EvalSourceMapDevToolPlugin(null, options.output.devtoolModuleFilenameTemplate));
else if(options.devtool === "@evalsourcemap" ||
options.devtool === "@eval-sourcemap" ||
options.devtool === "@eval-source-map")
compiler.apply(new EvalSourceMapDevToolPlugin("\n/*\n//@ sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate));
else if(options.devtool === "#evalsourcemap" ||
options.devtool === "#eval-sourcemap" ||
options.devtool === "#eval-source-map")
compiler.apply(new EvalSourceMapDevToolPlugin("\n//# sourceMappingURL=[url]", options.output.devtoolModuleFilenameTemplate));
else if(options.devtool === "#@evalsourcemap" ||
options.devtool === "#@eval-sourcemap" ||
options.devtool === "#@eval-source-map")
compiler.apply(new EvalSourceMapDevToolPlugin("\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate));
else if(options.devtool === "cheapevalsourcemap" || options.devtool === "cheap-eval-source-map")
compiler.apply(new EvalSourceMapDevToolPlugin({
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
module: false, columns: false, lineToLine: options.output.devtoolLineToLine
append: hidden ? false : comment,
module: moduleMaps ? true : cheap ? false : true,
columns: cheap ? false : true,
lineToLine: options.output.devtoolLineToLine
}));
}
function itemToPlugin(item, name) {
if(Array.isArray(item))