diff --git a/lib/EvalSourceMapDevToolPlugin.js b/lib/EvalSourceMapDevToolPlugin.js index 63129b9f6ee..6c7b4064852 100644 --- a/lib/EvalSourceMapDevToolPlugin.js +++ b/lib/EvalSourceMapDevToolPlugin.js @@ -152,6 +152,9 @@ class EvalSourceMapDevToolPlugin { } ); sourceMap.sources = moduleFilenames; + if (options.noSources) { + sourceMap.sourcesContent = undefined; + } sourceMap.sourceRoot = options.sourceRoot || ""; const moduleId = chunkGraph.getModuleId(m); sourceMap.file = `${moduleId}.js`; diff --git a/test/configCases/devtools/eval-nosources-source-map/index.js b/test/configCases/devtools/eval-nosources-source-map/index.js new file mode 100644 index 00000000000..3d451bd98f4 --- /dev/null +++ b/test/configCases/devtools/eval-nosources-source-map/index.js @@ -0,0 +1,10 @@ +it("should not include sourcesContent if noSources option is used", function() { + var fs = require("fs"); + var source = fs.readFileSync(__filename, "utf-8"); + var match = /\/\/# sourceMappingURL\s*=\s*data:application\/json;charset=utf-8;base64,(.*)\\n\/\/#/.exec(source); + var mapString = Buffer.from(match[1], 'base64').toString('utf-8'); + var map = JSON.parse(mapString); + expect(map).not.toHaveProperty("sourcesContent"); +}); + +if (Math.random() < 0) require("./test.js"); diff --git a/test/configCases/devtools/eval-nosources-source-map/test.js b/test/configCases/devtools/eval-nosources-source-map/test.js new file mode 100644 index 00000000000..c9d8865844b --- /dev/null +++ b/test/configCases/devtools/eval-nosources-source-map/test.js @@ -0,0 +1,3 @@ +var foo = {}; + +module.exports = foo; diff --git a/test/configCases/devtools/eval-nosources-source-map/webpack.config.js b/test/configCases/devtools/eval-nosources-source-map/webpack.config.js new file mode 100644 index 00000000000..8802d55732d --- /dev/null +++ b/test/configCases/devtools/eval-nosources-source-map/webpack.config.js @@ -0,0 +1,4 @@ +/** @type {import("../../../../").Configuration} */ +module.exports = { + devtool: "eval-nosources-source-map" +};