Skip to content

Commit c104323

Browse files
committed
more flexible source-map devtool parsing
1 parent b305988 commit c104323

1 file changed

Lines changed: 19 additions & 58 deletions

File tree

lib/WebpackOptionsApply.js

Lines changed: 19 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -175,67 +175,28 @@ WebpackOptionsApply.prototype.process = function(options, compiler) {
175175
compiler.apply(new EvalDevToolModulePlugin("//# sourceURL=[url]", options.output.devtoolModuleFilenameTemplate));
176176
else if(options.devtool === "#@eval")
177177
compiler.apply(new EvalDevToolModulePlugin("//@ sourceURL=[url]\n//# sourceURL=[url]", options.output.devtoolModuleFilenameTemplate));
178-
else if(options.devtool === "hidden-sourcemap" || options.devtool === "hidden-source-map")
179-
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, false, options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
180-
else if(options.devtool === "sourcemap" || options.devtool === "source-map")
181-
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, null, options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
182-
else if(options.devtool === "@sourcemap" || options.devtool === "@source-map")
183-
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, "\n/*\n//@ sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
184-
else if(options.devtool === "#sourcemap" || options.devtool === "#source-map")
185-
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, "\n//# sourceMappingURL=[url]", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
186-
else if(options.devtool === "#@sourcemap" || options.devtool === "#@source-map")
187-
compiler.apply(new SourceMapDevToolPlugin(options.output.sourceMapFilename, "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
188-
else if(options.devtool === "cheapsourcemap" || options.devtool === "cheap-source-map")
189-
compiler.apply(new SourceMapDevToolPlugin({
190-
filename: options.output.sourceMapFilename,
178+
else if(options.devtool && (options.devtool.indexOf("sourcemap") >= 0 || options.devtool.indexOf("source-map") >= 0)) {
179+
var hidden = options.devtool.indexOf("hidden") >= 0;
180+
var inline = options.devtool.indexOf("inline") >= 0;
181+
var evalWrapped = options.devtool.indexOf("eval") >= 0;
182+
var cheap = options.devtool.indexOf("cheap") >= 0;
183+
var moduleMaps = options.devtool.indexOf("module") >= 0;
184+
var legacy = options.devtool.indexOf("@") >= 0;
185+
var modern = options.devtool.indexOf("#") >= 0;
186+
var comment = legacy && modern ? "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/" :
187+
legacy ? "\n/*\n//@ sourceMappingURL=[url]\n*/" :
188+
modern ? "\n//# sourceMappingURL=[url]" :
189+
null;
190+
compiler.apply(new (evalWrapped ? EvalSourceMapDevToolPlugin : SourceMapDevToolPlugin)({
191+
filename: inline ? null : options.output.sourceMapFilename,
191192
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
192193
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
193-
module: false, columns: false, lineToLine: options.output.devtoolLineToLine
194-
}));
195-
else if(options.devtool === "inlinesourcemap" ||
196-
options.devtool === "inline-sourcemap" ||
197-
options.devtool === "inline-source-map")
198-
compiler.apply(new SourceMapDevToolPlugin(null, null, options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
199-
else if(options.devtool === "@inlinesourcemap" ||
200-
options.devtool === "@inline-sourcemap" ||
201-
options.devtool === "@inline-source-map")
202-
compiler.apply(new SourceMapDevToolPlugin(null, "\n/*\n//@ sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
203-
else if(options.devtool === "#inlinesourcemap" ||
204-
options.devtool === "#inline-sourcemap" ||
205-
options.devtool === "#inline-source-map")
206-
compiler.apply(new SourceMapDevToolPlugin(null, "\n//# sourceMappingURL=[url]", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
207-
else if(options.devtool === "#@inlinesourcemap" ||
208-
options.devtool === "#@inline-sourcemap" ||
209-
options.devtool === "#@inline-source-map")
210-
compiler.apply(new SourceMapDevToolPlugin(null, "\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate, options.output.devtoolFallbackModuleFilenameTemplate));
211-
else if(options.devtool === "cheapinlinesourcemap" || options.devtool === "cheap-inline-source-map")
212-
compiler.apply(new SourceMapDevToolPlugin({
213-
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
214-
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
215-
module: false, columns: false, lineToLine: options.output.devtoolLineToLine
216-
}));
217-
else if(options.devtool === "evalsourcemap" ||
218-
options.devtool === "eval-sourcemap" ||
219-
options.devtool === "eval-source-map")
220-
compiler.apply(new EvalSourceMapDevToolPlugin(null, options.output.devtoolModuleFilenameTemplate));
221-
else if(options.devtool === "@evalsourcemap" ||
222-
options.devtool === "@eval-sourcemap" ||
223-
options.devtool === "@eval-source-map")
224-
compiler.apply(new EvalSourceMapDevToolPlugin("\n/*\n//@ sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate));
225-
else if(options.devtool === "#evalsourcemap" ||
226-
options.devtool === "#eval-sourcemap" ||
227-
options.devtool === "#eval-source-map")
228-
compiler.apply(new EvalSourceMapDevToolPlugin("\n//# sourceMappingURL=[url]", options.output.devtoolModuleFilenameTemplate));
229-
else if(options.devtool === "#@evalsourcemap" ||
230-
options.devtool === "#@eval-sourcemap" ||
231-
options.devtool === "#@eval-source-map")
232-
compiler.apply(new EvalSourceMapDevToolPlugin("\n/*\n//@ sourceMappingURL=[url]\n//# sourceMappingURL=[url]\n*/", options.output.devtoolModuleFilenameTemplate));
233-
else if(options.devtool === "cheapevalsourcemap" || options.devtool === "cheap-eval-source-map")
234-
compiler.apply(new EvalSourceMapDevToolPlugin({
235-
moduleFilenameTemplate: options.output.devtoolModuleFilenameTemplate,
236-
fallbackModuleFilenameTemplate: options.output.devtoolFallbackModuleFilenameTemplate,
237-
module: false, columns: false, lineToLine: options.output.devtoolLineToLine
194+
append: hidden ? false : comment,
195+
module: moduleMaps ? true : cheap ? false : true,
196+
columns: cheap ? false : true,
197+
lineToLine: options.output.devtoolLineToLine
238198
}));
199+
}
239200

240201
function itemToPlugin(item, name) {
241202
if(Array.isArray(item))

0 commit comments

Comments
 (0)