From 8c90d5d9d03d20e63521cb284ba611ac2a5e2d7e Mon Sep 17 00:00:00 2001 From: Oliwia Rogala Date: Tue, 30 Apr 2024 11:11:31 +0200 Subject: [PATCH] fix: distribute proper source maps in npm distribution packages (#9877) Refs #9101 --- .npmignore | 3 --- flavors/swagger-ui-react/release/run.sh | 2 -- webpack/_config-builder.js | 11 +++-------- webpack/_helpers.js | 6 ++++++ webpack/bundle.js | 2 +- webpack/es-bundle-core.js | 3 ++- webpack/es-bundle.js | 2 +- webpack/standalone.js | 2 +- 8 files changed, 14 insertions(+), 17 deletions(-) diff --git a/.npmignore b/.npmignore index fc8adb40e33..59950fe3b9e 100644 --- a/.npmignore +++ b/.npmignore @@ -6,11 +6,8 @@ !dist/swagger-ui.js !dist/swagger-ui.js.map !dist/swagger-ui-bundle.js -!dist/swagger-ui-bundle.js.map !dist/swagger-ui-standalone-preset.js -!dist/swagger-ui-standalone-preset.js.map !dist/swagger-ui-es-bundle.js -!dist/swagger-ui-es-bundle.js.map !dist/swagger-ui-es-bundle-core.js !dist/swagger-ui-es-bundle-core.js.map !dist/swagger-ui.css diff --git a/flavors/swagger-ui-react/release/run.sh b/flavors/swagger-ui-react/release/run.sh index 701fb165590..3a360bd8bd5 100755 --- a/flavors/swagger-ui-react/release/run.sh +++ b/flavors/swagger-ui-react/release/run.sh @@ -14,9 +14,7 @@ cp ../../../dist/swagger-ui-es-bundle-core.js.map ../dist cp ../../../dist/swagger-ui.js ../dist cp ../../../dist/swagger-ui.js.map ../dist cp ../../../dist/swagger-ui-bundle.js ../dist -cp ../../../dist/swagger-ui-bundle.js.map ../dist cp ../../../dist/swagger-ui-es-bundle.js ../dist -cp ../../../dist/swagger-ui-es-bundle.js.map ../dist cp ../../../dist/swagger-ui.css ../dist cp ../../../dist/swagger-ui.css.map ../dist diff --git a/webpack/_config-builder.js b/webpack/_config-builder.js index f78903aab06..50c6e090f23 100644 --- a/webpack/_config-builder.js +++ b/webpack/_config-builder.js @@ -8,7 +8,7 @@ const webpack = require("webpack") const TerserPlugin = require("terser-webpack-plugin") const nodeExternals = require("webpack-node-externals") -const { getRepoInfo } = require("./_helpers") +const { getRepoInfo, getDevtool } = require("./_helpers") const pkg = require("../package.json") const projectBasePath = path.join(__dirname, "../") @@ -129,13 +129,7 @@ function buildConfig( }, }, - // If we're mangling, size is a concern -- so use trace-only sourcemaps - // Otherwise, provide heavy souremaps suitable for development - devtool: sourcemaps - ? minimize - ? "nosources-source-map" - : "cheap-module-source-map" - : false, + devtool: getDevtool(sourcemaps, minimize), performance: { hints: "error", @@ -149,6 +143,7 @@ function buildConfig( (compiler) => new TerserPlugin({ terserOptions: { + sourceMap: sourcemaps, mangle: !!mangle, keep_classnames: !customConfig.mode || customConfig.mode === "production", diff --git a/webpack/_helpers.js b/webpack/_helpers.js index 042cc0e058b..64d4a7b29ff 100644 --- a/webpack/_helpers.js +++ b/webpack/_helpers.js @@ -16,6 +16,12 @@ function getRepoInfo() { } } +function getDevtool(sourcemaps, minimize) { + if (!sourcemaps) return false + return minimize ? "source-map" : "cheap-module-source-map" +} + module.exports = { getRepoInfo, + getDevtool, } diff --git a/webpack/bundle.js b/webpack/bundle.js index bd0ecae26f4..46b1d8ca7cc 100644 --- a/webpack/bundle.js +++ b/webpack/bundle.js @@ -22,7 +22,7 @@ const result = configBuilder( { minimize: true, mangle: true, - sourcemaps: true, + sourcemaps: false, includeDependencies: true, }, { diff --git a/webpack/es-bundle-core.js b/webpack/es-bundle-core.js index 36715575bc9..4192137b6ef 100644 --- a/webpack/es-bundle-core.js +++ b/webpack/es-bundle-core.js @@ -14,6 +14,7 @@ const { WebpackBundleSizeAnalyzerPlugin, } = require("webpack-bundle-size-analyzer") const nodeExternals = require("webpack-node-externals") +const { getDevtool } = require("./_helpers") // const { StatsWriterPlugin } = require("webpack-stats-plugin") const minimize = true @@ -44,7 +45,7 @@ const result = configBuilder( module: true, }, }, - devtool: sourcemaps && minimize ? "source-map" : false, + devtool: getDevtool(sourcemaps, minimize), externalsType: "module", externals: [ { diff --git a/webpack/es-bundle.js b/webpack/es-bundle.js index 08ac5bc20bb..f83f6629061 100644 --- a/webpack/es-bundle.js +++ b/webpack/es-bundle.js @@ -21,7 +21,7 @@ const result = configBuilder( { minimize: true, mangle: true, - sourcemaps: true, + sourcemaps: false, includeDependencies: true, }, { diff --git a/webpack/standalone.js b/webpack/standalone.js index c777af7e496..d059ef3fc81 100644 --- a/webpack/standalone.js +++ b/webpack/standalone.js @@ -8,7 +8,7 @@ const result = configBuilder( { minimize: true, mangle: true, - sourcemaps: true, + sourcemaps: false, }, { entry: {