fix: sourcemaps (#39301)

## Description

- Returned the logic for generating the source maps. Source maps are
created for flags `REACT_APP_ENVIRONMENT=PRODUCTION` and
`REACT_APP_ENVIRONMENT=DEVELOPMENT` as before.
- Removed no longer used flag `DISABLE_ESLINT_PLUGIN`
- Removed no longer used `cra-bundle-analyzer` package and related
script.

EE PR — https://github.com/appsmithorg/appsmith-ee/pull/6227

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!CAUTION]
> 🔴 🔴 🔴 Some tests have failed.
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13353994445>
> Commit: 88551e50c36ff521b479128f4d0bc8f366cb253a
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13353994445&attempt=3&selectiontype=test&testsstatus=failed&specsstatus=fail"
target="_blank">Cypress dashboard</a>.
> Tags: @tag.All
> Spec: 
> The following are new failures, please fix them before merging the PR:
<ol>
>
<li>cypress/e2e/Regression/ServerSide/Datasources/Snowflake_Basic_Spec.ts</ol>
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master"
target="_blank">List of identified flaky tests</a>.
> <hr>Sun, 16 Feb 2025 12:54:58 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Chores**
  - Updated the build process to consistently enforce quality checks.
- Enhanced debugging support by refining source mapping for both
production and development environments.
  - Removed an outdated analysis task to streamline the startup routine.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
Valera Melnikov 2025-02-16 20:05:50 +03:00 committed by GitHub
parent 007f598c09
commit 19acf7c0ea
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 47 additions and 139 deletions

View File

@ -16,8 +16,6 @@ fi
# build cra app # build cra app
export REACT_APP_SENTRY_RELEASE=$GIT_SHA export REACT_APP_SENTRY_RELEASE=$GIT_SHA
export REACT_APP_CLIENT_LOG_LEVEL=ERROR export REACT_APP_CLIENT_LOG_LEVEL=ERROR
# Disable CRA built-in ESLint checks since we have our own config and a separate step for this
export DISABLE_ESLINT_PLUGIN=true
node --max-old-space-size=8192 scripts/build.js node --max-old-space-size=8192 scripts/build.js
echo "build finished" echo "build finished"

View File

@ -83,9 +83,6 @@ module.exports = function (webpackEnv) {
const isEnvDevelopment = webpackEnv === "development"; const isEnvDevelopment = webpackEnv === "development";
const isEnvProduction = webpackEnv === "production"; const isEnvProduction = webpackEnv === "production";
// Set devtool based on environment
const devtool = isEnvProduction ? "source-map" : false;
// Variable used for enabling profiling in Production // Variable used for enabling profiling in Production
// passed into alias object. Uses a flag if passed into the build command // passed into alias object. Uses a flag if passed into the build command
const isEnvProductionProfile = const isEnvProductionProfile =
@ -157,7 +154,9 @@ module.exports = function (webpackEnv) {
], ],
], ],
}, },
sourceMap: isEnvProduction ? true : isEnvDevelopment, sourceMap:
process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
}, },
}, },
].filter(Boolean); ].filter(Boolean);
@ -166,14 +165,18 @@ module.exports = function (webpackEnv) {
{ {
loader: require.resolve("resolve-url-loader"), loader: require.resolve("resolve-url-loader"),
options: { options: {
sourceMap: isEnvProduction ? true : isEnvDevelopment, sourceMap:
process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
root: paths.appSrc, root: paths.appSrc,
}, },
}, },
{ {
loader: require.resolve(preProcessor), loader: require.resolve(preProcessor),
options: { options: {
sourceMap: true, sourceMap:
process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
}, },
}, },
); );
@ -188,7 +191,10 @@ module.exports = function (webpackEnv) {
mode: isEnvProduction ? "production" : "development", mode: isEnvProduction ? "production" : "development",
// Stop compilation early in production // Stop compilation early in production
bail: isEnvProduction, bail: isEnvProduction,
devtool: devtool, devtool:
(process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" && "source-map") ||
(process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT" &&
"cheap-module-source-map"),
// These are the "entry points" to our application. // These are the "entry points" to our application.
// This means they will be the "root" imports that are included in JS bundle. // This means they will be the "root" imports that are included in JS bundle.
entry: paths.appIndexJs, entry: paths.appIndexJs,
@ -390,7 +396,7 @@ module.exports = function (webpackEnv) {
// Handle node_modules packages that contain sourcemaps // Handle node_modules packages that contain sourcemaps
{ {
enforce: "pre", enforce: "pre",
exclude: /@babel(?:\/|\\{1,2})runtime/, exclude: /(@babel[\\\/]runtime|node_modules)/,
test: /\.(js|mjs|jsx|ts|tsx|css)$/, test: /\.(js|mjs|jsx|ts|tsx|css)$/,
loader: require.resolve("source-map-loader"), loader: require.resolve("source-map-loader"),
}, },
@ -478,6 +484,7 @@ module.exports = function (webpackEnv) {
// directory for faster rebuilds. // directory for faster rebuilds.
cacheCompression: false, cacheCompression: false,
compact: isEnvProduction, compact: isEnvProduction,
exclude: /node_modules/,
}, },
}, },
// Process any JS outside of the app with Babel. // Process any JS outside of the app with Babel.
@ -503,8 +510,12 @@ module.exports = function (webpackEnv) {
// Babel sourcemaps are needed for debugging into node_modules // Babel sourcemaps are needed for debugging into node_modules
// code. Without the options below, debuggers like VSCode // code. Without the options below, debuggers like VSCode
// show incorrect code and set breakpoints on the wrong lines. // show incorrect code and set breakpoints on the wrong lines.
sourceMaps: true, sourceMaps:
inputSourceMap: true, process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
inputSourceMap:
process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
}, },
}, },
// "postcss" loader applies autoprefixer to our CSS. // "postcss" loader applies autoprefixer to our CSS.
@ -519,7 +530,9 @@ module.exports = function (webpackEnv) {
exclude: cssModuleRegex, exclude: cssModuleRegex,
use: getStyleLoaders({ use: getStyleLoaders({
importLoaders: 1, importLoaders: 1,
sourceMap: isEnvProduction ? true : isEnvDevelopment, sourceMap:
process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
modules: { modules: {
mode: "icss", mode: "icss",
}, },
@ -537,7 +550,9 @@ module.exports = function (webpackEnv) {
use: [ use: [
...getStyleLoaders({ ...getStyleLoaders({
importLoaders: 1, importLoaders: 1,
sourceMap: isEnvProduction ? true : isEnvDevelopment, sourceMap:
process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" ||
process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT",
modules: { modules: {
mode: "local", mode: "local",
getLocalIdent: getCSSModuleLocalIdent, getLocalIdent: getCSSModuleLocalIdent,
@ -586,13 +601,6 @@ module.exports = function (webpackEnv) {
].filter(Boolean), ].filter(Boolean),
}, },
ignoreWarnings: [ ignoreWarnings: [
function ignoreSourcemapsloaderWarnings(warning) {
return (
(warning.module?.resource.includes("node_modules") &&
warning.details?.includes("source-map-loader")) ??
false
);
},
function ignorePackageWarnings(warning) { function ignorePackageWarnings(warning) {
return ( return (
warning.module?.resource.includes( warning.module?.resource.includes(
@ -625,7 +633,7 @@ module.exports = function (webpackEnv) {
threshold: 10240, threshold: 10240,
minRatio: 0.8, minRatio: 0.8,
}), }),
isEnvProduction && process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" &&
new FaroSourceMapUploaderPlugin({ new FaroSourceMapUploaderPlugin({
appId: process.env.REACT_APP_FARO_APP_ID, appId: process.env.REACT_APP_FARO_APP_ID,
appName: process.env.REACT_APP_FARO_APP_NAME, appName: process.env.REACT_APP_FARO_APP_NAME,

View File

@ -15,8 +15,7 @@
"!packages/**/build" "!packages/**/build"
], ],
"scripts": { "scripts": {
"analyze": "yarn cra-bundle-analyzer", "start": "BROWSER=none REACT_APP_ENVIRONMENT=DEVELOPMENT REACT_APP_CLIENT_LOG_LEVEL=debug node --max_old_space_size=4096 scripts/start.js",
"start": "DISABLE_ESLINT_PLUGIN=true BROWSER=none REACT_APP_ENVIRONMENT=DEVELOPMENT REACT_APP_CLIENT_LOG_LEVEL=debug node --max_old_space_size=4096 scripts/start.js",
"build": "./build.sh", "build": "./build.sh",
"build-airgap": "node download-assets.js && ./build.sh", "build-airgap": "node download-assets.js && ./build.sh",
"test": "CYPRESS_BASE_URL=https://dev.appsmith.com cypress/test.sh", "test": "CYPRESS_BASE_URL=https://dev.appsmith.com cypress/test.sh",
@ -308,7 +307,6 @@
"case-sensitive-paths-webpack-plugin": "^2.4.0", "case-sensitive-paths-webpack-plugin": "^2.4.0",
"chalk": "^4.1.1", "chalk": "^4.1.1",
"compression-webpack-plugin": "^10.0.0", "compression-webpack-plugin": "^10.0.0",
"cra-bundle-analyzer": "^0.1.0",
"css-loader": "^6.5.1", "css-loader": "^6.5.1",
"css-minimizer-webpack-plugin": "^3.2.0", "css-minimizer-webpack-plugin": "^3.2.0",
"cy-verify-downloads": "^0.0.5", "cy-verify-downloads": "^0.0.5",

View File

@ -12569,7 +12569,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"acorn-walk@npm:^7.0.0, acorn-walk@npm:^7.1.1, acorn-walk@npm:^7.2.0": "acorn-walk@npm:^7.0.0, acorn-walk@npm:^7.2.0":
version: 7.2.0 version: 7.2.0
resolution: "acorn-walk@npm:7.2.0" resolution: "acorn-walk@npm:7.2.0"
checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f
@ -12603,7 +12603,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"acorn@npm:^7.0.0, acorn@npm:^7.1.1, acorn@npm:^7.4.1": "acorn@npm:^7.0.0, acorn@npm:^7.4.1":
version: 7.4.1 version: 7.4.1
resolution: "acorn@npm:7.4.1" resolution: "acorn@npm:7.4.1"
bin: bin:
@ -13052,7 +13052,6 @@ __metadata:
compression-webpack-plugin: ^10.0.0 compression-webpack-plugin: ^10.0.0
copy-to-clipboard: ^3.3.1 copy-to-clipboard: ^3.3.1
core-js: ^3.9.1 core-js: ^3.9.1
cra-bundle-analyzer: ^0.1.0
css-loader: ^6.5.1 css-loader: ^6.5.1
css-minimizer-webpack-plugin: ^3.2.0 css-minimizer-webpack-plugin: ^3.2.0
cy-verify-downloads: ^0.0.5 cy-verify-downloads: ^0.0.5
@ -14084,18 +14083,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"bfj@npm:^6.1.1":
version: 6.1.2
resolution: "bfj@npm:6.1.2"
dependencies:
bluebird: ^3.5.5
check-types: ^8.0.3
hoopy: ^0.1.4
tryer: ^1.0.1
checksum: 569726dd6b6d2f8f3cf2af84a1ac9d14e2336a1c9c09094cb429cc988cf99aba52ae4498a3bc81673aaf6c81bda1143bba76e86e4b2128568f3aa61b08d1662c
languageName: node
linkType: hard
"bfj@npm:^7.0.2": "bfj@npm:^7.0.2":
version: 7.0.2 version: 7.0.2
resolution: "bfj@npm:7.0.2" resolution: "bfj@npm:7.0.2"
@ -14950,13 +14937,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"check-types@npm:^8.0.3":
version: 8.0.3
resolution: "check-types@npm:8.0.3"
checksum: 9cf92c909ca13bfbfb51beb7bd660f7583d3445f2e4c2d5eb8043f44daf20b5fa48377516988a430098a555d9c15450178878879d1219fca6e2ee61afaabee2e
languageName: node
linkType: hard
"chokidar@npm:3.5.3": "chokidar@npm:3.5.3":
version: 3.5.3 version: 3.5.3
resolution: "chokidar@npm:3.5.3" resolution: "chokidar@npm:3.5.3"
@ -15420,7 +15400,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"commander@npm:^2.18.0, commander@npm:^2.19.0, commander@npm:^2.20.0": "commander@npm:^2.19.0, commander@npm:^2.20.0":
version: 2.20.3 version: 2.20.3
resolution: "commander@npm:2.20.3" resolution: "commander@npm:2.20.3"
checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e
@ -15756,23 +15736,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"cra-bundle-analyzer@npm:^0.1.0":
version: 0.1.0
resolution: "cra-bundle-analyzer@npm:0.1.0"
dependencies:
minimist: ^1.2.5
progress-bar-webpack-plugin: ^2.1.0
webpack-bundle-analyzer: ^3.6.0
peerDependencies:
chalk: ">=3"
react-scripts: ">=3"
webpack: ">=4"
bin:
cra-bundle-analyzer: src/index.js
checksum: 84aaf76891750a542fb4eb804d5db2570fa1f9b1946903d33d05760cc334b2de9122ef872e6ea56232fd5ec652e44a771e7e85dd29c28ec9902b1a13a7ef358a
languageName: node
linkType: hard
"create-ecdh@npm:^4.0.4": "create-ecdh@npm:^4.0.4":
version: 4.0.4 version: 4.0.4
resolution: "create-ecdh@npm:4.0.4" resolution: "create-ecdh@npm:4.0.4"
@ -17360,7 +17323,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"duplexer@npm:^0.1.1, duplexer@npm:^0.1.2": "duplexer@npm:^0.1.2":
version: 0.1.2 version: 0.1.2
resolution: "duplexer@npm:0.1.2" resolution: "duplexer@npm:0.1.2"
checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0
@ -18646,7 +18609,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"express@npm:^4.16.3, express@npm:^4.17.3, express@npm:^4.19.2, express@npm:^4.20.0": "express@npm:^4.17.3, express@npm:^4.19.2, express@npm:^4.20.0":
version: 4.21.0 version: 4.21.0
resolution: "express@npm:4.21.0" resolution: "express@npm:4.21.0"
dependencies: dependencies:
@ -18980,13 +18943,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"filesize@npm:^3.6.1":
version: 3.6.1
resolution: "filesize@npm:3.6.1"
checksum: 9ba47e9df90cd6bb6c0434418123facf9dafbe92c850f29ed50bfa42d60d00f8501a8a9b962f77ec7d1ba30190d5dbda5f6f56c5e56bce9e09729988bf0613c4
languageName: node
linkType: hard
"filesize@npm:^8.0.6": "filesize@npm:^8.0.6":
version: 8.0.7 version: 8.0.7
resolution: "filesize@npm:8.0.7" resolution: "filesize@npm:8.0.7"
@ -20046,16 +20002,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"gzip-size@npm:^5.0.0":
version: 5.1.1
resolution: "gzip-size@npm:5.1.1"
dependencies:
duplexer: ^0.1.1
pify: ^4.0.1
checksum: 6451ba2210877368f6d9ee9b4dc0d14501671472801323bf81fbd38bdeb8525f40a78be45a59d0182895d51e6b60c6314b7d02bd6ed40e7225a01e8d038aac1b
languageName: node
linkType: hard
"gzip-size@npm:^6.0.0": "gzip-size@npm:^6.0.0":
version: 6.0.0 version: 6.0.0
resolution: "gzip-size@npm:6.0.0" resolution: "gzip-size@npm:6.0.0"
@ -24753,17 +24699,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mkdirp@npm:^0.5.1, mkdirp@npm:~0.5.1":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
dependencies:
minimist: ^1.2.6
bin:
mkdirp: bin/cmd.js
checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2
languageName: node
linkType: hard
"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": "mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
version: 1.0.4 version: 1.0.4
resolution: "mkdirp@npm:1.0.4" resolution: "mkdirp@npm:1.0.4"
@ -24782,6 +24717,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"mkdirp@npm:~0.5.1":
version: 0.5.6
resolution: "mkdirp@npm:0.5.6"
dependencies:
minimist: ^1.2.6
bin:
mkdirp: bin/cmd.js
checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2
languageName: node
linkType: hard
"mochawesome-merge@npm:^4.2.1": "mochawesome-merge@npm:^4.2.1":
version: 4.3.0 version: 4.3.0
resolution: "mochawesome-merge@npm:4.3.0" resolution: "mochawesome-merge@npm:4.3.0"
@ -25664,7 +25610,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"opener@npm:^1.5.1, opener@npm:^1.5.2": "opener@npm:^1.5.2":
version: 1.5.2 version: 1.5.2
resolution: "opener@npm:1.5.2" resolution: "opener@npm:1.5.2"
bin: bin:
@ -27529,25 +27475,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"progress-bar-webpack-plugin@npm:^2.1.0":
version: 2.1.0
resolution: "progress-bar-webpack-plugin@npm:2.1.0"
dependencies:
chalk: ^3.0.0
progress: ^2.0.3
peerDependencies:
webpack: ^1.3.0 || ^2 || ^3 || ^4 || ^5
checksum: 90d765f363bd2b5c220c75cdd66037453690500e20206838d7dc67e49813dc742079a69d663663a4d4405c70b43738add347abe31d1c4abd4ab52f473019321a
languageName: node
linkType: hard
"progress@npm:^2.0.3":
version: 2.0.3
resolution: "progress@npm:2.0.3"
checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7
languageName: node
linkType: hard
"promise-inflight@npm:^1.0.1": "promise-inflight@npm:^1.0.1":
version: 1.0.1 version: 1.0.1
resolution: "promise-inflight@npm:1.0.1" resolution: "promise-inflight@npm:1.0.1"
@ -33552,29 +33479,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"webpack-bundle-analyzer@npm:^3.6.0":
version: 3.9.0
resolution: "webpack-bundle-analyzer@npm:3.9.0"
dependencies:
acorn: ^7.1.1
acorn-walk: ^7.1.1
bfj: ^6.1.1
chalk: ^2.4.1
commander: ^2.18.0
ejs: ^2.6.1
express: ^4.16.3
filesize: ^3.6.1
gzip-size: ^5.0.0
lodash: ^4.17.19
mkdirp: ^0.5.1
opener: ^1.5.1
ws: ^6.0.0
bin:
webpack-bundle-analyzer: lib/bin/analyzer.js
checksum: 7fb83afb137bca5102a07c998c70cffdc2e212334ff43cb057fe1b12d0d555b5aa05183eac4b7ad34c2b59a4e387fed1872d2b8ec658c870c985310e79795d61
languageName: node
linkType: hard
"webpack-dev-middleware@npm:^5.3.1": "webpack-dev-middleware@npm:^5.3.1":
version: 5.3.4 version: 5.3.4
resolution: "webpack-dev-middleware@npm:5.3.4" resolution: "webpack-dev-middleware@npm:5.3.4"
@ -34224,7 +34128,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ws@npm:^6.0.0, ws@npm:^6.1.0": "ws@npm:^6.1.0":
version: 6.2.3 version: 6.2.3
resolution: "ws@npm:6.2.3" resolution: "ws@npm:6.2.3"
dependencies: dependencies: