// craco.config.js const TerserPlugin = require("terser-webpack-plugin"); const CracoLessPlugin = require("craco-less"); const SentryWebpackPlugin = require("@sentry/webpack-plugin"); 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: SentryWebpackPlugin, options: { // sentry-cli configuration authToken: "6b45b028a02342db97a9a2f92c0959058665443d379d4a3a876430009e744260", org: "snapt-software", project: "imexonline", release: process.env.REACT_APP_GIT_SHA, // webpack-specific configuration include: ".", ignore: ["node_modules", "webpack.config.js"], }, }, { 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", };