From 19acf7c0ea94a4bd451a9c7093d2a55272d16e89 Mon Sep 17 00:00:00 2001 From: Valera Melnikov Date: Sun, 16 Feb 2025 20:05:50 +0300 Subject: [PATCH] fix: sourcemaps (#39301) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 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" ### :mag: Cypress test results > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: > Commit: 88551e50c36ff521b479128f4d0bc8f366cb253a > Cypress dashboard. > Tags: @tag.All > Spec: > The following are new failures, please fix them before merging the PR:
    >
  1. cypress/e2e/Regression/ServerSide/Datasources/Snowflake_Basic_Spec.ts
> List of identified flaky tests. >
Sun, 16 Feb 2025 12:54:58 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No ## 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. --- app/client/build.sh | 2 - app/client/config/webpack.config.js | 48 +++++----- app/client/package.json | 4 +- app/client/yarn.lock | 132 ++++------------------------ 4 files changed, 47 insertions(+), 139 deletions(-) diff --git a/app/client/build.sh b/app/client/build.sh index 1135afc746..d74a4d328c 100755 --- a/app/client/build.sh +++ b/app/client/build.sh @@ -16,8 +16,6 @@ fi # build cra app export REACT_APP_SENTRY_RELEASE=$GIT_SHA 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 echo "build finished" diff --git a/app/client/config/webpack.config.js b/app/client/config/webpack.config.js index 18b19a1791..67f0e11728 100644 --- a/app/client/config/webpack.config.js +++ b/app/client/config/webpack.config.js @@ -83,9 +83,6 @@ module.exports = function (webpackEnv) { const isEnvDevelopment = webpackEnv === "development"; const isEnvProduction = webpackEnv === "production"; - // Set devtool based on environment - const devtool = isEnvProduction ? "source-map" : false; - // Variable used for enabling profiling in Production // passed into alias object. Uses a flag if passed into the build command 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); @@ -166,14 +165,18 @@ module.exports = function (webpackEnv) { { loader: require.resolve("resolve-url-loader"), options: { - sourceMap: isEnvProduction ? true : isEnvDevelopment, + sourceMap: + process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" || + process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT", root: paths.appSrc, }, }, { loader: require.resolve(preProcessor), 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", // Stop compilation early in production 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. // This means they will be the "root" imports that are included in JS bundle. entry: paths.appIndexJs, @@ -390,7 +396,7 @@ module.exports = function (webpackEnv) { // Handle node_modules packages that contain sourcemaps { enforce: "pre", - exclude: /@babel(?:\/|\\{1,2})runtime/, + exclude: /(@babel[\\\/]runtime|node_modules)/, test: /\.(js|mjs|jsx|ts|tsx|css)$/, loader: require.resolve("source-map-loader"), }, @@ -478,6 +484,7 @@ module.exports = function (webpackEnv) { // directory for faster rebuilds. cacheCompression: false, compact: isEnvProduction, + exclude: /node_modules/, }, }, // 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 // code. Without the options below, debuggers like VSCode // show incorrect code and set breakpoints on the wrong lines. - sourceMaps: true, - inputSourceMap: true, + sourceMaps: + 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. @@ -519,7 +530,9 @@ module.exports = function (webpackEnv) { exclude: cssModuleRegex, use: getStyleLoaders({ importLoaders: 1, - sourceMap: isEnvProduction ? true : isEnvDevelopment, + sourceMap: + process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" || + process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT", modules: { mode: "icss", }, @@ -537,7 +550,9 @@ module.exports = function (webpackEnv) { use: [ ...getStyleLoaders({ importLoaders: 1, - sourceMap: isEnvProduction ? true : isEnvDevelopment, + sourceMap: + process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" || + process.env.REACT_APP_ENVIRONMENT === "DEVELOPMENT", modules: { mode: "local", getLocalIdent: getCSSModuleLocalIdent, @@ -586,13 +601,6 @@ module.exports = function (webpackEnv) { ].filter(Boolean), }, ignoreWarnings: [ - function ignoreSourcemapsloaderWarnings(warning) { - return ( - (warning.module?.resource.includes("node_modules") && - warning.details?.includes("source-map-loader")) ?? - false - ); - }, function ignorePackageWarnings(warning) { return ( warning.module?.resource.includes( @@ -625,7 +633,7 @@ module.exports = function (webpackEnv) { threshold: 10240, minRatio: 0.8, }), - isEnvProduction && + process.env.REACT_APP_ENVIRONMENT === "PRODUCTION" && new FaroSourceMapUploaderPlugin({ appId: process.env.REACT_APP_FARO_APP_ID, appName: process.env.REACT_APP_FARO_APP_NAME, diff --git a/app/client/package.json b/app/client/package.json index 5824465c69..43f757a308 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -15,8 +15,7 @@ "!packages/**/build" ], "scripts": { - "analyze": "yarn cra-bundle-analyzer", - "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", + "start": "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-airgap": "node download-assets.js && ./build.sh", "test": "CYPRESS_BASE_URL=https://dev.appsmith.com cypress/test.sh", @@ -308,7 +307,6 @@ "case-sensitive-paths-webpack-plugin": "^2.4.0", "chalk": "^4.1.1", "compression-webpack-plugin": "^10.0.0", - "cra-bundle-analyzer": "^0.1.0", "css-loader": "^6.5.1", "css-minimizer-webpack-plugin": "^3.2.0", "cy-verify-downloads": "^0.0.5", diff --git a/app/client/yarn.lock b/app/client/yarn.lock index 77e720a621..fb2dcfec86 100644 --- a/app/client/yarn.lock +++ b/app/client/yarn.lock @@ -12569,7 +12569,7 @@ __metadata: languageName: node 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 resolution: "acorn-walk@npm:7.2.0" checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f @@ -12603,7 +12603,7 @@ __metadata: languageName: node 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 resolution: "acorn@npm:7.4.1" bin: @@ -13052,7 +13052,6 @@ __metadata: compression-webpack-plugin: ^10.0.0 copy-to-clipboard: ^3.3.1 core-js: ^3.9.1 - cra-bundle-analyzer: ^0.1.0 css-loader: ^6.5.1 css-minimizer-webpack-plugin: ^3.2.0 cy-verify-downloads: ^0.0.5 @@ -14084,18 +14083,6 @@ __metadata: languageName: node 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": version: 7.0.2 resolution: "bfj@npm:7.0.2" @@ -14950,13 +14937,6 @@ __metadata: languageName: node 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": version: 3.5.3 resolution: "chokidar@npm:3.5.3" @@ -15420,7 +15400,7 @@ __metadata: languageName: node 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 resolution: "commander@npm:2.20.3" checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e @@ -15756,23 +15736,6 @@ __metadata: languageName: node 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": version: 4.0.4 resolution: "create-ecdh@npm:4.0.4" @@ -17360,7 +17323,7 @@ __metadata: languageName: node linkType: hard -"duplexer@npm:^0.1.1, duplexer@npm:^0.1.2": +"duplexer@npm:^0.1.2": version: 0.1.2 resolution: "duplexer@npm:0.1.2" checksum: 62ba61a830c56801db28ff6305c7d289b6dc9f859054e8c982abd8ee0b0a14d2e9a8e7d086ffee12e868d43e2bbe8a964be55ddbd8c8957714c87373c7a4f9b0 @@ -18646,7 +18609,7 @@ __metadata: languageName: node 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 resolution: "express@npm:4.21.0" dependencies: @@ -18980,13 +18943,6 @@ __metadata: languageName: node 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": version: 8.0.7 resolution: "filesize@npm:8.0.7" @@ -20046,16 +20002,6 @@ __metadata: languageName: node 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": version: 6.0.0 resolution: "gzip-size@npm:6.0.0" @@ -24753,17 +24699,6 @@ __metadata: languageName: node 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": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" @@ -24782,6 +24717,17 @@ __metadata: languageName: node 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": version: 4.3.0 resolution: "mochawesome-merge@npm:4.3.0" @@ -25664,7 +25610,7 @@ __metadata: languageName: node linkType: hard -"opener@npm:^1.5.1, opener@npm:^1.5.2": +"opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" bin: @@ -27529,25 +27475,6 @@ __metadata: languageName: node 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": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" @@ -33552,29 +33479,6 @@ __metadata: languageName: node 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": version: 5.3.4 resolution: "webpack-dev-middleware@npm:5.3.4" @@ -34224,7 +34128,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^6.0.0, ws@npm:^6.1.0": +"ws@npm:^6.1.0": version: 6.2.3 resolution: "ws@npm:6.2.3" dependencies: