55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
// craco.config.js
|
|
const TerserPlugin = require("terser-webpack-plugin");
|
|
const CracoLessPlugin = require("craco-less");
|
|
const {convertLegacyToken} = require('@ant-design/compatible/lib');
|
|
const {theme} = require('antd/lib');
|
|
|
|
const {defaultAlgorithm, defaultSeed} = theme;
|
|
|
|
const mapToken = defaultAlgorithm(defaultSeed);
|
|
const v4Token = convertLegacyToken(mapToken);
|
|
|
|
// TODO, At the moment we are using less in the Dashboard. Once we remove this we can remove the less processor entirely.
|
|
|
|
module.exports = {
|
|
plugins: [
|
|
|
|
{
|
|
plugin: CracoLessPlugin,
|
|
options: {
|
|
lessLoaderOptions: {
|
|
lessOptions: {
|
|
modifyVars: {...v4Token},
|
|
javascriptEnabled: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
webpack: {
|
|
configure: (webpackConfig) => {
|
|
return {
|
|
...webpackConfig,
|
|
// Required for Dev Server
|
|
devServer: {
|
|
...webpackConfig.devServer,
|
|
allowedHosts: 'all',
|
|
},
|
|
optimization: {
|
|
...webpackConfig.optimization,
|
|
// Workaround for CircleCI bug caused by the number of CPUs shown
|
|
// https://github.com/facebook/create-react-app/issues/8320
|
|
minimizer: webpackConfig.optimization.minimizer.map((item) => {
|
|
if (item instanceof TerserPlugin) {
|
|
item.options.parallel = 2;
|
|
}
|
|
|
|
return item;
|
|
}),
|
|
},
|
|
};
|
|
},
|
|
},
|
|
devtool: "source-map",
|
|
};
|