diff --git a/docs/reference/config/README.md b/docs/reference/config/README.md index e800cdb0..ca1d8877 100644 --- a/docs/reference/config/README.md +++ b/docs/reference/config/README.md @@ -333,7 +333,7 @@ const defaultTerserOptions = { - 默认值:`null` - 详情: - 通过 [webpack-chain](https://github.com/neutrinojs/webpack-chain) 的 API 修改 webpack 配置。 + 通过 [webpack-chain](https://github.com/sorrycc/webpack-chain#readme) 的 API 修改 webpack 配置。 示例: diff --git a/packages/fes-builder-webpack/package.json b/packages/fes-builder-webpack/package.json index 24b67570..b1b7ced1 100644 --- a/packages/fes-builder-webpack/package.json +++ b/packages/fes-builder-webpack/package.json @@ -44,14 +44,14 @@ "connect-history-api-fallback": "^1.6.0", "copy-webpack-plugin": "^7.0.0", "css-loader": "^5.0.1", - "fs-extra": "^10.0.0", "css-minimizer-webpack-plugin": "^4.0.0", + "fs-extra": "^10.0.0", + "get-folder-size": "^2.0.1", "html-webpack-plugin": "^5.0.0", "html-webpack-tags-plugin": "^3.0.0", - "get-folder-size": "^2.0.1", "less": "3.9.0", "less-loader": "^8.0.0", - "mini-css-extract-plugin": "^1.3.5", + "mini-css-extract-plugin": "^2.7.5", "postcss": "8.3.0", "postcss-flexbugs-fixes": "^5.0.2", "postcss-loader": "^4.2.0", @@ -60,8 +60,8 @@ "terser-webpack-plugin": "^5.3.6", "vue-loader": "^16.1.2", "webpack": "^5.76.2", + "webpack-5-chain": "^8.0.1", "webpack-bundle-analyzer": "^4.4.0", - "webpack-chain": "^6.5.1", "webpack-dev-server": "^4.8.1", "webpackbar": "^5.0.2" }, @@ -69,4 +69,4 @@ "@fesjs/fes": "3.0.0-rc.8", "core-js": "^3.27.0" } -} \ No newline at end of file +} diff --git a/packages/fes-builder-webpack/src/plugins/commands/webpack/index.js b/packages/fes-builder-webpack/src/plugins/commands/webpack/index.js index 8fe18deb..551ccc49 100644 --- a/packages/fes-builder-webpack/src/plugins/commands/webpack/index.js +++ b/packages/fes-builder-webpack/src/plugins/commands/webpack/index.js @@ -27,7 +27,7 @@ export default function (api) { async fn({ options }) { const assert = require('assert'); const { getBundleAndConfigs } = require('../buildDevUtils'); - const { toString } = require('webpack-chain'); + const { toString } = require('webpack-5-chain'); const { highlight } = require('cli-highlight'); const { bundleConfig } = await getBundleAndConfigs({ api }); diff --git a/packages/fes-builder-webpack/src/plugins/commands/webpackConfig/index.js b/packages/fes-builder-webpack/src/plugins/commands/webpackConfig/index.js index a3fd41cc..28828a83 100644 --- a/packages/fes-builder-webpack/src/plugins/commands/webpackConfig/index.js +++ b/packages/fes-builder-webpack/src/plugins/commands/webpackConfig/index.js @@ -1,6 +1,6 @@ import { join } from 'path'; import { existsSync } from 'fs'; -import Config from 'webpack-chain'; +import Config from 'webpack-5-chain'; import webpack from 'webpack'; import createCssWebpackConfig from './css'; import getBabelOpts from './getBabelOpts'; @@ -78,7 +78,8 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod .path(absoluteOutput) .publicPath(publicPath || '/') .filename('js/[name].[contenthash:8].js') - .chunkFilename('js/[name].[contenthash:8].chunk.js'); + .chunkFilename('js/[name].[contenthash:8].chunk.js') + .assetModuleFilename('static/[name][hash:8][ext]'); // --------------- resolve ----------- webpackConfig.resolve.extensions.merge(['.mjs', '.js', '.jsx', '.vue', '.ts', '.tsx', '.json', '.wasm']); @@ -293,10 +294,6 @@ export default async function getConfig({ api, cwd, config, env, entry = {}, mod aggregateTimeout: 200, ...memo.watchOptions, }; - memo.output = { - ...memo.output, - assetModuleFilename: 'static/[name][hash:8][ext]', - }; return memo; } diff --git a/packages/fes-builder-webpack/types.d.ts b/packages/fes-builder-webpack/types.d.ts index fb96f4bb..657e8a6c 100644 --- a/packages/fes-builder-webpack/types.d.ts +++ b/packages/fes-builder-webpack/types.d.ts @@ -1,4 +1,4 @@ -import Config from 'webpack-chain' +import Config from 'webpack-5-chain' import webpack from 'webpack'; import HtmlWebpackPlugin from 'html-webpack-plugin' diff --git a/packages/fes-template-vite/.fes.prod.js b/packages/fes-template-vite/.fes.prod.js index 33f8ac56..3bf486a9 100644 --- a/packages/fes-template-vite/.fes.prod.js +++ b/packages/fes-template-vite/.fes.prod.js @@ -2,5 +2,5 @@ import { defineBuildConfig } from '@fesjs/fes'; export default defineBuildConfig({ builder: 'webpack', - publicPath: 'https://gw.alipayobjects.com/', + publicPath: './', }); diff --git a/yarn.lock b/yarn.lock index 352c520a..6918fc4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8452,14 +8452,12 @@ min-indent@^1.0.0: resolved "https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -mini-css-extract-plugin@^1.3.5: - version "1.6.2" - resolved "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz#83172b4fd812f8fc4a09d6f6d16f924f53990ca8" - integrity sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q== +mini-css-extract-plugin@^2.7.5: + version "2.7.5" + resolved "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.5.tgz#afbb344977659ec0f1f6e050c7aea456b121cfc5" + integrity sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ== dependencies: - loader-utils "^2.0.0" - schema-utils "^3.0.0" - webpack-sources "^1.1.0" + schema-utils "^4.0.0" minimalistic-assert@^1.0.0: version "1.0.1" @@ -10359,11 +10357,6 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" -source-list-map@^2.0.0: - version "2.0.1" - resolved "https://registry.npmmirror.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== - "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" @@ -11513,6 +11506,14 @@ webidl-conversions@^6.1.0: resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webpack-5-chain@^8.0.1: + version "8.0.1" + resolved "https://registry.npmmirror.com/webpack-5-chain/-/webpack-5-chain-8.0.1.tgz#dda9db48c19e4e01e535e84241131bcc777243d8" + integrity sha512-Tu1w80WA2Z+X6e7KzGy+cc0A0z+npVJA/fh55q2azMJ030gqz343Kx+yNAstDCeugsepmtDWY2J2IBRW/O+DEA== + dependencies: + deepmerge "^1.5.2" + javascript-stringify "^2.0.1" + webpack-bundle-analyzer@^4.4.0: version "4.8.0" resolved "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz#951b8aaf491f665d2ae325d8b84da229157b1d04" @@ -11529,14 +11530,6 @@ webpack-bundle-analyzer@^4.4.0: sirv "^1.0.7" ws "^7.3.1" -webpack-chain@^6.5.1: - version "6.5.1" - resolved "https://registry.npmmirror.com/webpack-chain/-/webpack-chain-6.5.1.tgz#4f27284cbbb637e3c8fbdef43eef588d4d861206" - integrity sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA== - dependencies: - deepmerge "^1.5.2" - javascript-stringify "^2.0.1" - webpack-dev-middleware@^5.3.1: version "5.3.3" resolved "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz#efae67c2793908e7311f1d9b06f2a08dcc97e51f" @@ -11583,14 +11576,6 @@ webpack-dev-server@^4.8.1: webpack-dev-middleware "^5.3.1" ws "^8.4.2" -webpack-sources@^1.1.0: - version "1.4.3" - resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - webpack-sources@^3.2.3: version "3.2.3" resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"