diff --git a/config/index.js b/config/index.js index eca13b1..9911967 100644 --- a/config/index.js +++ b/config/index.js @@ -1,133 +1,111 @@ import path from "path"; -// const { GenerateSW } = require("workbox-webpack-plugin"); - const WebpackObfuscator = require("webpack-obfuscator"); + const config = { projectName: "cityh5", - date: "2023-12-2", designWidth: 750, - deviceRatio: { - 640: 2.34 / 2, - 750: 1, - 828: 1.81 / 2, - }, + deviceRatio: { 640: 2.34 / 2, 750: 1, 828: 1.81 / 2 }, sourceRoot: "src", outputRoot: "dist", plugins: [], defineConstants: {}, - copy: { - patterns: [], - options: {}, - }, + copy: { patterns: [], options: {} }, framework: "react", compiler: "webpack5", + cache: { - enable: false, // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache + enable: true, // ✅ 开启缓存,加快构建 + type: "filesystem", }, h5: { webpackChain(chain) { + // ✅ 避免 undefined.js,统一使用标准占位符 chain.output.filename("static/js/[name].[contenthash:8].js"); chain.output.chunkFilename("static/js/[name].[contenthash:8].js"); - chain - .plugin("MiniCssExtractPlugin") - .use(require("mini-css-extract-plugin"), [ - { - filename: "static/css/[name].[contenthash:8].css", - chunkFilename: "static/css/[name].[contenthash:8].css", - }, - ]); + + chain.plugin("MiniCssExtractPlugin").use(require("mini-css-extract-plugin"), [ + { + filename: "static/css/[name].[contenthash:8].css", + chunkFilename: "static/css/[name].[contenthash:8].css", + }, + ]); + if (process.env.NODE_ENV === "production") { - // js代码混淆 + // ✅ 保留原有混淆逻辑 chain.plugin("obfuscator").use(WebpackObfuscator, [ { rotateStringArray: true, stringArray: true, - stringArrayThreshold: 0.5, // 降低比例,提高速度 + stringArrayThreshold: 0.5, compact: true, - controlFlowFlattening: false, // 关闭,提高速度 - deadCodeInjection: false, // 关闭,提高速度 + controlFlowFlattening: false, + deadCodeInjection: false, debugProtection: false, disableConsoleOutput: true, - selfDefending: false, // 关闭,提高速度 - simplify: true, // 开启简化,提高性能 - // 禁用对 async/await 的转换 - target: "browser", // 或设置为适合目标环境的 ECMAScript 版本 - disableOptimizations: true, // 禁用某些优化来避免处理 async/await + selfDefending: false, + simplify: true, + target: "browser", + disableOptimizations: true, }, - ["**/*.js", "!node_modules/**"], // 避免对 node_modules 进行混淆 + ["**/*.js", "!node_modules/**"], ]); } + // ✅ markdown 支持 chain.module .rule("markdown") .test(/\.md$/) .use("raw-loader") .loader("raw-loader") .end(); + + // ✅ ico 支持 chain.module .rule("ico") .test(/\.ico$/) .use("file-loader") .loader("file-loader") - .options({ - name: "static/images/[name].[ext]", - }); + .options({ name: "static/images/[name].[ext]" }); }, esnextModules: ["taro-ui"], - publicPath: "/", - // publicPath: `/v${new Date().getTime()}/`, - + publicPath: "/", // ✅ 部署到根目录;如果是子路径,需要改成 /xxx/ staticDirectory: "static", + postcss: { - autoprefixer: { - enable: true, - config: {}, - }, + autoprefixer: { enable: true, config: {} }, cssModules: { - enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + enable: false, config: { - namingPattern: "module", // 转换模式,取值为 global/module + namingPattern: "module", generateScopedName: "[name]__[local]___[hash:base64:5]", }, }, }, router: { - // basename: '/myapp', - mode: "browser", // 或者是 'hash' + mode: "browser", customRoutes: { - // "页面路径": "自定义路由" "/pages/index/index": "/", "/pages/book/index": "/book", - // '/pages/detail/index': ['/detail'], // 可以通过数组为页面配置多个自定义路由 - // "pages/my/index": "/my", - // "pages/meetup/index": "/meetup", - // "pages/meetup/Detail/index": "/detail", }, }, - // defineConstants: { - // HOST: '"/api"' - // }, + devServer: { - // host: 'nomad.hackrobot.cn', // 替换为您的域名 - // port: 10087, // 选择一个适当的端口号 proxy: { "/api/": { - target: JSON.parse('"http://localhost:8700"'), //本地调试端口 - pathRewrite: { - "^/api/": "/", - }, + target: "http://localhost:8700", + pathRewrite: { "^/api/": "/" }, changeOrigin: true, }, }, - // 允许特定域名访问 - allowedHosts: ["nomadro.com", "localhost", ".nomadro.com","hackrobot.cn"], // 允许所有 *.nomadyt.com 子域访问 + allowedHosts: ["nomadro.com", "localhost", ".nomadro.com", "hackrobot.cn"], }, + htmlPluginOption: { - favicon: path.resolve(__dirname, "..", "src", "images", "dgnomad.png"), // 同样处理 favicon 路径 + favicon: path.resolve(__dirname, "..", "src", "images", "dgnomad.png"), meta: { "cache-control": "no-cache, no-store, must-revalidate", pragma: "no-cache", diff --git a/config/indexBack.js b/config/indexBack.js new file mode 100644 index 0000000..2c2898c --- /dev/null +++ b/config/indexBack.js @@ -0,0 +1,152 @@ +import path from "path"; +// const { GenerateSW } = require("workbox-webpack-plugin"); + +const WebpackObfuscator = require("webpack-obfuscator"); +const config = { + projectName: "cityh5", + + date: "2023-12-2", + designWidth: 750, + deviceRatio: { + 640: 2.34 / 2, + 750: 1, + 828: 1.81 / 2, + }, + sourceRoot: "src", + outputRoot: "dist", + plugins: [], + defineConstants: {}, + copy: { + patterns: [], + options: {}, + }, + framework: "react", + compiler: "webpack5", + cache: { + enable: false, // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache + }, + + h5: { + webpackChain(chain) { + chain.output.filename("static/js/[name].[contenthash:8].js"); + chain.output.chunkFilename("static/js/[name].[contenthash:8].js"); + chain + .plugin("MiniCssExtractPlugin") + .use(require("mini-css-extract-plugin"), [ + { + filename: "static/css/[name].[contenthash:8].css", + chunkFilename: "static/css/[name].[contenthash:8].css", + }, + ]); + if (process.env.NODE_ENV === "production") { + // js代码混淆 + chain.plugin("obfuscator").use(WebpackObfuscator, [ + { + rotateStringArray: true, + stringArray: true, + stringArrayThreshold: 0.5, // 降低比例,提高速度 + compact: true, + controlFlowFlattening: false, // 关闭,提高速度 + deadCodeInjection: false, // 关闭,提高速度 + debugProtection: false, + disableConsoleOutput: true, + selfDefending: false, // 关闭,提高速度 + simplify: true, // 开启简化,提高性能 + // 禁用对 async/await 的转换 + target: "browser", // 或设置为适合目标环境的 ECMAScript 版本 + disableOptimizations: true, // 禁用某些优化来避免处理 async/await + }, + ["**/*.js", "!node_modules/**"], // 避免对 node_modules 进行混淆 + ]); + } + + chain.module + .rule("markdown") + .test(/\.md$/) + .use("raw-loader") + .loader("raw-loader") + .end(); + chain.module + .rule("ico") + .test(/\.ico$/) + .use("file-loader") + .loader("file-loader") + .options({ + name: "static/images/[name].[ext]", + }); + }, + + esnextModules: ["taro-ui"], + publicPath: "/", + // publicPath: `/v${new Date().getTime()}/`, + + staticDirectory: "static", + postcss: { + autoprefixer: { + enable: true, + config: {}, + }, + cssModules: { + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + config: { + namingPattern: "module", // 转换模式,取值为 global/module + generateScopedName: "[name]__[local]___[hash:base64:5]", + }, + }, + }, + + router: { + // basename: '/myapp', + mode: "browser", // 或者是 'hash' + customRoutes: { + // "页面路径": "自定义路由" + "/pages/index/index": "/", + "/pages/book/index": "/book", + // '/pages/detail/index': ['/detail'], // 可以通过数组为页面配置多个自定义路由 + // "pages/my/index": "/my", + // "pages/meetup/index": "/meetup", + // "pages/meetup/Detail/index": "/detail", + }, + }, + // defineConstants: { + // HOST: '"/api"' + // }, + devServer: { + // host: 'nomad.hackrobot.cn', // 替换为您的域名 + // port: 10087, // 选择一个适当的端口号 + proxy: { + "/api/": { + target: JSON.parse('"http://localhost:8700"'), //本地调试端口 + pathRewrite: { + "^/api/": "/", + }, + changeOrigin: true, + }, + }, + // 允许特定域名访问 + allowedHosts: [ + "nomadro.com", + "localhost", + ".nomadro.com", + "hackrobot.cn", + ], // 允许所有 *.nomadyt.com 子域访问 + }, + htmlPluginOption: { + favicon: path.resolve(__dirname, "..", "src", "images", "dgnomad.png"), // 同样处理 favicon 路径 + meta: { + "cache-control": "no-cache, no-store, must-revalidate", + pragma: "no-cache", + expires: "0", + }, + }, + + target: ["web", "browserslist:> 0.25%, not dead"], + }, +}; + +module.exports = function (merge) { + if (process.env.NODE_ENV === "development") { + return merge({}, config, require("./dev")); + } + return merge({}, config, require("./prod")); +}; diff --git a/package.json b/package.json index f076636..f77387f 100644 --- a/package.json +++ b/package.json @@ -63,13 +63,16 @@ "@types/react": "^18.0.0", "@types/webpack-env": "^1.13.6", "babel-preset-taro": "3.6.20", + "compression-webpack-plugin": "^11.1.0", "eslint": "^8.12.0", "eslint-config-taro": "3.6.20", "eslint-plugin-import": "^2.12.0", "eslint-plugin-react": "^7.8.2", "eslint-plugin-react-hooks": "^1.6.1", + "glob": "^11.0.3", "javascript-obfuscator": "^4.1.1", "postcss": "^8.4.18", + "purgecss-webpack-plugin": "^7.0.2", "react-refresh": "^0.11.0", "stylelint": "9.3.0", "ts-node": "^10.9.1", diff --git a/src/index.html b/src/index.html index dbc2531..d3065cc 100644 --- a/src/index.html +++ b/src/index.html @@ -5,15 +5,14 @@ - - + + - diff --git a/yarn.lock b/yarn.lock index 709e1e8..6d6038c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4116,6 +4116,11 @@ commander@10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.0.tgz#71797971162cd3cf65f0b9d24eb28f8d303acdf1" integrity sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA== +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + commander@^2.19.0, commander@^2.20.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -4153,6 +4158,14 @@ compressible@~2.0.18: dependencies: mime-db ">= 1.43.0 < 2" +compression-webpack-plugin@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-11.1.0.tgz#ee340d2029cf99ccecdea9ad1410b377d15b48b3" + integrity sha512-zDOQYp10+upzLxW+VRSjEpRRwBXJdsb5lBMlRxx1g8hckIFBpe3DTI0en2w7h+beuq89576RVzfiXrkdPGrHhA== + dependencies: + schema-utils "^4.2.0" + serialize-javascript "^6.0.2" + compression@^1.7.4: version "1.8.1" resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.1.tgz#4a45d909ac16509195a9a28bd91094889c180d79" @@ -5124,6 +5137,14 @@ enhanced-resolve@^5.17.2, enhanced-resolve@^5.9.3: graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.17.3: + version "5.18.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz#9b5f4c5c076b8787c78fe540392ce76a88855b44" + integrity sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -6266,7 +6287,7 @@ for-own@^0.1.4: dependencies: for-in "^1.0.1" -foreground-child@^3.1.0: +foreground-child@^3.1.0, foreground-child@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== @@ -6547,6 +6568,18 @@ glob@10.2.6: minipass "^5.0.0 || ^6.0.2" path-scurry "^1.7.0" +glob@^11.0.0, glob@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.3.tgz#9d8087e6d72ddb3c4707b1d2778f80ea3eaefcd6" + integrity sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA== + dependencies: + foreground-child "^3.3.1" + jackspeak "^4.1.1" + minimatch "^10.0.3" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^2.0.0" + glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -7898,6 +7931,13 @@ jackspeak@^2.0.3: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" +jackspeak@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.1.tgz#96876030f450502047fc7e8c7fcf8ce8124e43ae" + integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + jake@^10.8.5: version "10.9.2" resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" @@ -8531,6 +8571,11 @@ lru-cache@^10.2.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== +lru-cache@^11.0.0: + version "11.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.2.2.tgz#40fd37edffcfae4b2940379c0722dc6eeaa75f24" + integrity sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg== + lru-cache@^4.1.2: version "4.1.5" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -8923,7 +8968,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@*: +minimatch@*, minimatch@^10.0.3: version "10.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.3.tgz#cf7a0314a16c4d9ab73a7730a0e8e3c3502d47aa" integrity sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw== @@ -8992,7 +9037,7 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -9639,6 +9684,11 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + package-json@^6.3.0, package-json@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -9809,6 +9859,14 @@ path-scurry@^1.7.0: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-scurry@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" + integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== + dependencies: + lru-cache "^11.0.0" + minipass "^7.1.2" + path-to-regexp@0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" @@ -10242,7 +10300,7 @@ postcss-selector-parser@^3.1.0: indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9, postcss-selector-parser@^6.1.2: version "6.1.2" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== @@ -10325,7 +10383,7 @@ postcss@^7.0.1, postcss@^7.0.23, postcss@^7.0.32, postcss@^7.0.36: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.2.14, postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.33, postcss@^8.5.6: +postcss@^8.2.14, postcss@^8.3.5, postcss@^8.4.18, postcss@^8.4.33, postcss@^8.4.47, postcss@^8.5.6: version "8.5.6" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== @@ -10476,6 +10534,24 @@ pupa@^2.1.1: dependencies: escape-goat "^2.0.0" +purgecss-webpack-plugin@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/purgecss-webpack-plugin/-/purgecss-webpack-plugin-7.0.2.tgz#76e7591ac1fac8d10538ad1659df586dae23d588" + integrity sha512-YKN93Ndg/T/FsJaUL7KJdFBh/kfGi3pH7sm1OmVbhzb11mmS+vbRAQ5UIvqUd70kQrJ57+ZpPkDtRv66d89q9A== + dependencies: + purgecss "^7.0.2" + webpack ">=5.95.0" + +purgecss@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-7.0.2.tgz#b7dccc3ead65a4301eed98e014793719a511c633" + integrity sha512-4Ku8KoxNhOWi9X1XJ73XY5fv+I+hhTRedKpGs/2gaBKU8ijUiIKF/uyyIyh7Wo713bELSICF5/NswjcuOqYouQ== + dependencies: + commander "^12.1.0" + glob "^11.0.0" + postcss "^8.4.47" + postcss-selector-parser "^6.1.2" + qs@6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" @@ -13191,6 +13267,37 @@ webpack-virtual-modules@^0.5.0: resolved "https://registry.yarnpkg.com/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz#362f14738a56dae107937ab98ea7062e8bdd3b6c" integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== +webpack@>=5.95.0: + version "5.101.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.101.3.tgz#3633b2375bb29ea4b06ffb1902734d977bc44346" + integrity sha512-7b0dTKR3Ed//AD/6kkx/o7duS8H3f1a4w3BYpIriX4BzIhjkn4teo05cptsxvLesHFKK5KObnadmCHBwGc+51A== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.8" + "@types/json-schema" "^7.0.15" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.15.0" + acorn-import-phases "^1.0.3" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.3" + es-module-lexer "^1.2.1" + eslint-scope "5.1.1" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.11" + json-parse-even-better-errors "^2.3.1" + loader-runner "^4.2.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + schema-utils "^4.3.2" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.3.3" + webpack@^5.78.0: version "5.100.2" resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.100.2.tgz#e2341facf9f7de1d702147c91bcb65b693adf9e8"