代码拉取完成,页面将自动刷新
// https://github.com/arackaf/customize-cra#with-mobx
const path = require('path');
const webpackMerge = require('webpack-merge');
const appSrc = path.join(__dirname, './src');
const {
addDecoratorsLegacy,
disableEsLint,
useBabelRc,
override,
fixBabelImports,
addLessLoader,
addWebpackAlias
} = require('customize-cra');
const utilsConfig = require('./src/utils/config');
//打包分析
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
// 这里可以直接修改 Host 或者 Port
// process.env.HOST = 'localhost.xxxx.com';
// process.env.PORT = 4100;
// 生产环境是否打包 Source Map
process.env.GENERATE_SOURCEMAP = false;
module.exports = {
// 配置devServer
devServer: (configFun) => (proxy, allowedHost) => {
proxy = {
'/mock': {
// 这里配置代理服务地址
target: 'http://localhost:3000/',
changeOrigin: true,
pathRewrite: { '^/mock': '' }
}
};
// allowedHost: 添加额外的地址
const config = configFun(proxy, allowedHost);
config.quiet = false;
return config;
},
// 配置webpack
webpack: (config, env) => {
// 开发环境
const isEnvDevelopment = env === 'development';
// 生产环境
const isEnvProduction = env === 'production';
// 通过customize-cra插件覆盖
config = override(
// 配置路径别名
addWebpackAlias({ '@': appSrc }),
// 对Decorators支持
addDecoratorsLegacy(),
disableEsLint(),
useBabelRc(),
fixBabelImports('import', {
libraryName: 'antd',
libraryDirectory: 'es',
style: true // change importing css to less
}),
addLessLoader({
javascriptEnabled: true,
modifyVars: utilsConfig.lessModifyVars
})
)(config, env);
return webpackMerge(config, {
// 用户可以在这里添加自定义的config配置 来增加修改loader, plugin, optimization
plugins: [
//new BundleAnalyzerPlugin()
],
optimization: {
splitChunks: {
chunks: 'initial', // 默认作用于异步chunk,值为 all/initial/async/function(chunk)
minSize: 30000, // 表示在压缩前的最小模块大小,默认值是30kb
minChunks: 1, // 表示被引用次数,默认为1;
maxAsyncRequests: 5, // 所有异步请求不得超过5个
maxInitialRequests: 3, // 初始话并行请求不得超过3个
automaticNameDelimiter: '~', // 名称分隔符,默认是~
name: true, // 打包后的名称,默认是chunk的名字通过分隔符(默认是~)分隔
cacheGroups: {
// 设置缓存组用来抽取满足不同规则的chunk
vendor: {
name: 'vendor',
chunks: 'initial', // 同外层的参数配置,覆盖外层的chunks,以chunk为维度进行抽取
priority: 10, // 优先级
reuseExistingChunk: false, // 如果该chunk中引用了已经被抽取的chunk,直接引用该chunk,不会重复打包代码
test: /node_modules\/(.*)\.js/ // 以module为维度进行抽取
},
styles: {
name: 'styles',
test: /\.(scss|css)$/,
chunks: 'all',
minChunks: 20,
reuseExistingChunk: true,
enforce: true
}
}
}
}
});
},
// 配置测试
jest: (config) => {
config.moduleNameMapper = {
// 同webpack一样配置别名
'@/(.*)$': '<rootDir>/src/$1'
};
return config;
}
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。