mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-11 19:42:54 +08:00
refactor: 📦 use webpack-plugin-esbuild (#23930)
* 📦 use webpack-plugin-esbuild
* rename esbuild-webpack-plugin
* fix npm run dist error
* fix npm run dist error
* code style improve
* remove extra finalizeDist
* Add process.env.ESBUILD
This commit is contained in:
parent
3d578c87be
commit
612bcdf4a6
@ -156,4 +156,3 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
generateThemeFileContent,
|
generateThemeFileContent,
|
||||||
};
|
};
|
||||||
finalizeDist();
|
|
||||||
|
@ -181,6 +181,7 @@
|
|||||||
"enzyme": "^3.10.0",
|
"enzyme": "^3.10.0",
|
||||||
"enzyme-adapter-react-16": "^1.14.0",
|
"enzyme-adapter-react-16": "^1.14.0",
|
||||||
"enzyme-to-json": "^3.3.5",
|
"enzyme-to-json": "^3.3.5",
|
||||||
|
"esbuild-webpack-plugin": "^1.0.0-beta.3",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
"eslint-config-airbnb": "^18.0.0",
|
"eslint-config-airbnb": "^18.0.0",
|
||||||
"eslint-config-prettier": "^6.0.0",
|
"eslint-config-prettier": "^6.0.0",
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const replaceLib = require('@ant-design/tools/lib/replaceLib');
|
const replaceLib = require('@ant-design/tools/lib/replaceLib');
|
||||||
const getWebpackConfig = require('@ant-design/tools/lib/getWebpackConfig');
|
const getWebpackConfig = require('@ant-design/tools/lib/getWebpackConfig');
|
||||||
|
const EsbuildPlugin = require('esbuild-webpack-plugin').default;
|
||||||
const { version } = require('../package.json');
|
const { version } = require('../package.json');
|
||||||
|
|
||||||
const { webpack } = getWebpackConfig;
|
const { webpack } = getWebpackConfig;
|
||||||
@ -134,6 +135,9 @@ module.exports = {
|
|||||||
// Resolve use react hook fail when yarn link or npm link
|
// Resolve use react hook fail when yarn link or npm link
|
||||||
// https://github.com/webpack/webpack/issues/8607#issuecomment-453068938
|
// https://github.com/webpack/webpack/issues/8607#issuecomment-453068938
|
||||||
config.resolve.alias = { ...config.resolve.alias, react: require.resolve('react') };
|
config.resolve.alias = { ...config.resolve.alias, react: require.resolve('react') };
|
||||||
|
} else if (process.env.ESBUILD) {
|
||||||
|
// use esbuild
|
||||||
|
config.optimization.minimizer = [new EsbuildPlugin()];
|
||||||
}
|
}
|
||||||
|
|
||||||
alertBabelConfig(config.module.rules);
|
alertBabelConfig(config.module.rules);
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
const getWebpackConfig = require('@ant-design/tools/lib/getWebpackConfig');
|
const getWebpackConfig = require('@ant-design/tools/lib/getWebpackConfig');
|
||||||
const IgnoreEmitPlugin = require('ignore-emit-webpack-plugin');
|
const IgnoreEmitPlugin = require('ignore-emit-webpack-plugin');
|
||||||
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
||||||
|
const EsbuildPlugin = require('esbuild-webpack-plugin').default;
|
||||||
const darkVars = require('./scripts/dark-vars');
|
const darkVars = require('./scripts/dark-vars');
|
||||||
const compactVars = require('./scripts/compact-vars');
|
const compactVars = require('./scripts/compact-vars');
|
||||||
|
|
||||||
@ -48,7 +49,12 @@ function processWebpackThemeConfig(themeConfig, theme, vars) {
|
|||||||
config.module.rules.forEach(rule => {
|
config.module.rules.forEach(rule => {
|
||||||
// filter less rule
|
// filter less rule
|
||||||
if (rule.test instanceof RegExp && rule.test.test('.less')) {
|
if (rule.test instanceof RegExp && rule.test.test('.less')) {
|
||||||
rule.use[rule.use.length - 1].options.modifyVars = vars;
|
const lessRule = rule.use[rule.use.length - 1];
|
||||||
|
if (lessRule.options.lessOptions) {
|
||||||
|
lessRule.options.lessOptions.modifyVars = vars;
|
||||||
|
} else {
|
||||||
|
lessRule.options.modifyVars = vars;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -61,6 +67,7 @@ function processWebpackThemeConfig(themeConfig, theme, vars) {
|
|||||||
const webpackConfig = getWebpackConfig(false);
|
const webpackConfig = getWebpackConfig(false);
|
||||||
const webpackDarkConfig = getWebpackConfig(false);
|
const webpackDarkConfig = getWebpackConfig(false);
|
||||||
const webpackCompactConfig = getWebpackConfig(false);
|
const webpackCompactConfig = getWebpackConfig(false);
|
||||||
|
|
||||||
if (process.env.RUN_ENV === 'PRODUCTION') {
|
if (process.env.RUN_ENV === 'PRODUCTION') {
|
||||||
webpackConfig.forEach(config => {
|
webpackConfig.forEach(config => {
|
||||||
ignoreMomentLocale(config);
|
ignoreMomentLocale(config);
|
||||||
@ -68,6 +75,10 @@ if (process.env.RUN_ENV === 'PRODUCTION') {
|
|||||||
addLocales(config);
|
addLocales(config);
|
||||||
// Reduce non-minified dist files size
|
// Reduce non-minified dist files size
|
||||||
config.optimization.usedExports = true;
|
config.optimization.usedExports = true;
|
||||||
|
// use esbuild
|
||||||
|
if (process.env.CSB_REPO) {
|
||||||
|
config.optimization.minimizer[0] = new EsbuildPlugin();
|
||||||
|
}
|
||||||
// skip codesandbox ci
|
// skip codesandbox ci
|
||||||
if (!process.env.CSB_REPO) {
|
if (!process.env.CSB_REPO) {
|
||||||
config.plugins.push(
|
config.plugins.push(
|
||||||
|
Loading…
Reference in New Issue
Block a user