You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
const path = require('path');
|
|
const { injectBabelPlugin, getLoader } = require('react-app-rewired');
|
|
const rewireLess = require('react-app-rewire-less');
|
|
const rewireMobX = require('react-app-rewire-mobx');
|
|
|
|
const fileLoaderMatcher = function (rule) {
|
|
return rule.loader && rule.loader.indexOf('file-loader') != -1;
|
|
}
|
|
|
|
function resolve(dir) {
|
|
return path.join(__dirname, '.', dir);
|
|
}
|
|
|
|
module.exports = function override(config, env) {
|
|
if (env === 'production') {
|
|
config = productionOverride(config);
|
|
}
|
|
config.resolve.alias = {
|
|
'@': resolve('src')
|
|
}
|
|
config = rewireMobX(config, env);
|
|
config = injectBabelPlugin(['import', { libraryName: 'antd-mobile', style: true }], config);
|
|
config = rewireLess.withLoaderOptions({
|
|
modifyVars: {
|
|
'@brand-primary': '#AF151B', // #C53806'#af151b' '#a4000c', //'#dd3333', // '#E83202',
|
|
'@color-text-base': '#333'
|
|
},
|
|
javascriptEnabled: true
|
|
}) (config, env);
|
|
|
|
// It is generally necessary to use the Icon component, need to configure svg-sprite-loader
|
|
config.module.rules[1].oneOf.unshift(
|
|
{
|
|
test: /\.(svg)$/i,
|
|
loader: 'svg-sprite-loader',
|
|
include: [
|
|
require.resolve('antd-mobile').replace(/warn\.js$/, ''), // 1. svg files of antd-mobile
|
|
path.resolve('.', 'src/assets/svg'), // folder of svg files in your project
|
|
]
|
|
}
|
|
);
|
|
const fileLoader = getLoader(config.module.rules, fileLoaderMatcher);
|
|
fileLoader.exclude.push(/\.svg$/i);
|
|
|
|
return config;
|
|
};
|
|
|
|
function productionOverride(config) {
|
|
// 禁止生成 sourcemap
|
|
config.devtool = false;
|
|
return config;
|
|
}
|