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