94 lines
4.0 KiB
JavaScript
94 lines
4.0 KiB
JavaScript
// 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 {getLoader, loaderByName} = require("@craco/craco");
|
|
const AntdMomentWebpackPlugin = require("@ant-design/moment-webpack-plugin");
|
|
const {writeFile} = require("fs");
|
|
|
|
const {defaultAlgorithm, defaultSeed} = theme;
|
|
|
|
const mapToken = defaultAlgorithm(defaultSeed);
|
|
const v4Token = convertLegacyToken(mapToken);
|
|
|
|
|
|
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,
|
|
...(process.env.NODE_ENV === "development"
|
|
? {"colorPrimary": "#a51d1d"}
|
|
: {
|
|
//"@primary-color": "#1DA57A"
|
|
}),
|
|
// "@primary-color": " #1890ff", // primary color for all components
|
|
// "@link-color": "#1890ff", // link color
|
|
// "@success-color": "#52c41a", // success state color
|
|
// "@warning-color": "#faad14", // warning state color
|
|
// "@error-color": "#f5222d", // error state color
|
|
// "@font-size-base": "14px", // major text font size
|
|
// " @heading-color": "rgba(0, 0, 0, 0.85)", // heading text color
|
|
// "@text-color": "rgba(0, 0, 0, 0.65)", // major text color
|
|
// "@text-color-secondary": "rgba(0, 0, 0, 0.45)", // secondary text color
|
|
// "@disabled-color": "rgba(0, 0, 0, 0.25)", // disable state color
|
|
// "@border-radius-base": "2px", // major border radius
|
|
// "@border-color-base": "#d9d9d9", // major border color
|
|
// "@box-shadow-base":
|
|
// "0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08),0 9px 28px 8px rgba(0, 0, 0, 0.05); // major shadow for layers }",
|
|
},
|
|
javascriptEnabled: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
],
|
|
webpack: {
|
|
configure: (webpackConfig) => {
|
|
// config.plugins.push(new AntdMomentWebpackPlugin());
|
|
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",
|
|
};
|