Skip to content

Commit 382ba21

Browse files
authored
Add source-map-loader for debugging into original source of node_modules libraries that contain sourcemaps (#8227)
1 parent 0415189 commit 382ba21

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

packages/react-scripts/config/webpack.config.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,13 @@ module.exports = function (webpackEnv) {
374374
rules: [
375375
// Disable require.ensure as it's not a standard language feature.
376376
{ parser: { requireEnsure: false } },
377+
// Handle node_modules packages that contain sourcemaps
378+
shouldUseSourceMap && {
379+
enforce: 'pre',
380+
exclude: /@babel(?:\/|\\{1,2})runtime/,
381+
test: /\.(js|mjs|jsx|ts|tsx|css)$/,
382+
use: 'source-map-loader',
383+
},
377384
{
378385
// "oneOf" will traverse all following loaders until one will
379386
// match the requirements. When no loader matches it will fall
@@ -605,7 +612,7 @@ module.exports = function (webpackEnv) {
605612
// Make sure to add the new loader(s) before the "file" loader.
606613
],
607614
},
608-
],
615+
].filter(Boolean),
609616
},
610617
plugins: [
611618
// Generates an `index.html` file with the <script> injected.

packages/react-scripts/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
"resolve-url-loader": "^3.1.2",
8080
"sass-loader": "^10.0.5",
8181
"semver": "7.3.2",
82+
"source-map-loader": "^1.1.2",
8283
"style-loader": "1.3.0",
8384
"terser-webpack-plugin": "4.2.3",
8485
"ts-pnp": "1.2.0",

packages/react-scripts/scripts/build.js

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,17 @@ function build(previousFileSizes) {
193193
process.env.CI.toLowerCase() !== 'false') &&
194194
messages.warnings.length
195195
) {
196-
console.log(
197-
chalk.yellow(
198-
'\nTreating warnings as errors because process.env.CI = true.\n' +
199-
'Most CI servers set it automatically.\n'
200-
)
201-
);
202-
return reject(new Error(messages.warnings.join('\n\n')));
196+
// Ignore sourcemap warnings in CI builds. See #8227 for more info.
197+
const filteredWarnings = messages.warnings.filter(w => !/Failed to parse source map/.test(w));
198+
if (filteredWarnings.length) {
199+
console.log(
200+
chalk.yellow(
201+
'\nTreating warnings as errors because process.env.CI = true.\n' +
202+
'Most CI servers set it automatically.\n'
203+
)
204+
);
205+
return reject(new Error(filteredWarnings.join('\n\n')));
206+
}
203207
}
204208

205209
const resolveArgs = {

0 commit comments

Comments
 (0)