54 lines
1.4 KiB
JavaScript
54 lines
1.4 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"
|
|
};
|