From c9156f05492599d311cd0ba3ed5c041a97ac563f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Gorej?= Date: Wed, 8 Mar 2023 15:35:15 +0100 Subject: [PATCH] build(webpack): amend build configs to compensate for ApiDOM (#8460) Refs #8403 --- package-lock.json | 2 +- package.json | 1 - webpack/_config-builder.js | 46 ++++++++++++++++++++++++++------------ 3 files changed, 33 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index bdd357d3..6b57c681 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "packages": { "": { "name": "swagger-ui", - "version": "4.17.1", + "version": "4.18.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 16badc63..60466e74 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "deps-license": "license-checker --production --csv --out $npm_package_config_deps_check_dir/licenses.csv && license-checker --development --csv --out $npm_package_config_deps_check_dir/licenses-dev.csv", "deps-size": "webpack -p --config webpack/bundle.babel.js --json | webpack-bundle-size-analyzer >| $npm_package_config_deps_check_dir/sizes.txt", "deps-check": "run-s deps-license deps-size", - "link:apidom": "npm link @swagger-api/apidom-core @swagger-api/apidom-reference @swagger-api/apidom-ns-openapi-3-1 @swagger-api/apidom-ns-openapi-3-0 @swagger-api/apidom-ns-json-schema-draft-4 @swagger-api/apidom-json-pointer", "lint": "eslint --ext \".js,.jsx\" src test dev-helpers flavors", "lint-errors": "eslint --quiet --ext \".js,.jsx\" src test dev-helpers flavors", "lint-fix": "eslint --ext \".js,.jsx\" src test dev-helpers flavors --fix", diff --git a/webpack/_config-builder.js b/webpack/_config-builder.js index 5aeb9114..178aef66 100644 --- a/webpack/_config-builder.js +++ b/webpack/_config-builder.js @@ -26,9 +26,7 @@ const baseRules = [ cacheDirectory: true, }, }, - { test: /\.(txt|yaml)$/, - type: "asset/source", - }, + { test: /\.(txt|yaml)$/, type: "asset/source" }, { test: /\.(png|jpg|jpeg|gif|svg)$/, type: "asset/inline", @@ -78,12 +76,11 @@ export default function buildConfig( // when esm, library.name should be unset, so do not define here // when esm, library.export should be unset, so do not define here type: "umd", - } + }, }, target: "web", - module: { rules: baseRules, }, @@ -92,21 +89,42 @@ export default function buildConfig( ? { esprima: "esprima", } - : [nodeExternals({ - importType: (moduleName) => { - return `commonjs ${moduleName}` - }})], + : [ + nodeExternals({ + importType: (moduleName) => { + return `commonjs ${moduleName}` + }, + }), + ], resolve: { modules: [path.join(projectBasePath, "./src"), "node_modules"], extensions: [".web.js", ".js", ".jsx", ".json", ".less"], alias: { // these aliases make sure that we don't bundle same libraries twice // when the versions of these libraries diverge between swagger-js and swagger-ui - "@babel/runtime-corejs3": path.resolve(__dirname, "..", "node_modules/@babel/runtime-corejs3"), + "@babel/runtime-corejs3": path.resolve( + __dirname, + "..", + "node_modules/@babel/runtime-corejs3" + ), "js-yaml": path.resolve(__dirname, "..", "node_modules/js-yaml"), - "lodash": path.resolve(__dirname, "..", "node_modules/lodash"), + lodash: path.resolve(__dirname, "..", "node_modules/lodash"), "react-is": path.resolve(__dirname, "..", "node_modules/react-is"), - "safe-buffer": path.resolve(__dirname, "..", "node_modules/safe-buffer"), + "safe-buffer": path.resolve( + __dirname, + "..", + "node_modules/safe-buffer" + ), + ramda: path.resolve( + __dirname, + "..", + "node_modules/@swagger-api/apidom-core/node_modules/ramda" + ), + "ramda-adjunct": path.resolve( + __dirname, + "..", + "node_modules/@swagger-api/apidom-core/node_modules/ramda-adjunct" + ), }, fallback: { fs: false, @@ -131,12 +149,12 @@ export default function buildConfig( optimization: { minimize: !!minimize, minimizer: [ - compiler => + (compiler) => new TerserPlugin({ terserOptions: { mangle: !!mangle, }, - }).apply(compiler) + }).apply(compiler), ], }, },