Commit 0c7489e4 authored by 郭志伟's avatar 郭志伟

feat: 优化构建测试

parent d1c26369
...@@ -63,7 +63,6 @@ export default { ...@@ -63,7 +63,6 @@ export default {
ie: 11, ie: 11,
}, },
// devtool: process.env.SENTRY_ENV === 'test' ? false : 'hidden-source-map', // devtool: process.env.SENTRY_ENV === 'test' ? false : 'hidden-source-map',
devtool: false,
// umi routes: https://umijs.org/zh/guide/router.html // umi routes: https://umijs.org/zh/guide/router.html
routes: [ routes: [
{ {
......
...@@ -7,6 +7,7 @@ import generate from '@ant-design/colors/lib/generate'; ...@@ -7,6 +7,7 @@ import generate from '@ant-design/colors/lib/generate';
import path from 'path'; import path from 'path';
const SentryPlugin = require('@qg/sentry-webpack-plugin'); const SentryPlugin = require('@qg/sentry-webpack-plugin');
const SentryConfig = require('../.sentryclirc'); const SentryConfig = require('../.sentryclirc');
import webpack from 'webpack';
function getModulePackageName(module) { function getModulePackageName(module) {
if (!module.context) return null; if (!module.context) return null;
const nodeModulesPath = path.join(__dirname, '../node_modules/'); const nodeModulesPath = path.join(__dirname, '../node_modules/');
...@@ -30,6 +31,14 @@ function getModulePackageName(module) { ...@@ -30,6 +31,14 @@ function getModulePackageName(module) {
export default config => { export default config => {
if (process.env.NODE_ENV === 'production') { if (process.env.NODE_ENV === 'production') {
config.plugin('sentry-webpack-plugin').use(SentryPlugin, [SentryConfig]); config.plugin('sentry-webpack-plugin').use(SentryPlugin, [SentryConfig]);
if (process.env.SENTRY_ENV === 'prod') {
config.plugin('source-map-dev-tool-plugin').use(webpack.SourceMapDevToolPlugin, [
{
exclude: /(antdesigns|vendors|mapvgl).*/,
filename: '[file].map[query]',
},
]);
}
} }
// preview.pro.ant.design only do not use in your production; // preview.pro.ant.design only do not use in your production;
if ( if (
...@@ -63,42 +72,40 @@ export default config => { ...@@ -63,42 +72,40 @@ export default config => {
} // optimize chunks } // optimize chunks
config.optimization // share the same chunks across different modules config.optimization // share the same chunks across different modules
.runtimeChunk(false)
.splitChunks({ .splitChunks({
chunks: 'async', chunks: 'all', //async异步代码分割 initial同步代码分割 all同步异步分割都开启
name: 'vendors', automaticNameDelimiter: '.',
maxInitialRequests: Infinity, name: true,
minSize: 0, minSize: 30000, // 引入的文件大于30kb才进行分割
minChunks: 1, // 模块至少使用次数
cacheGroups: { cacheGroups: {
antdesigns: {
name: 'antdesigns',
chunks: 'all',
test: /[\\/]node_modules[\\/](@antv|antd|@ant-design|rc-*|[\\@]ctrl[\\/]tinycolor|tinycolor2)/,
priority: 10,
},
vendors: { vendors: {
test: module => { name: 'vendors',
const packageName = getModulePackageName(module) || ''; chunks: 'all',
test: /[\\/]node_modules[\\/](lodash|moment|react|dva|postcss|mapbox-gl|date-fns|sentry|react-sortablejs|sortablejs)/,
if (packageName) { priority: 10,
return [ enforce: true,
'bizcharts',
'gg-editor',
'g6',
'@antv',
'gg-editor-core',
'bizcharts-plugin-slider',
].includes(packageName);
}
return false;
}, },
mapvgl: {
name(module) { name: 'mapvgl',
const packageName = getModulePackageName(module); chunks: 'all',
test: /[\\/]node_modules[\\/](mapvgl|react-bmapgl|react-amap)/,
if (packageName) { priority: 11,
if (['bizcharts', '@antv_data-set'].indexOf(packageName) >= 0) {
return 'viz'; // visualization package
}
}
return 'misc';
}, },
commons: {
name: 'commons',
// 其余同步加载包
chunks: 'all',
minChunks: 2,
priority: 1,
// refer: https://github.com/webpack-contrib/mini-css-extract-plugin/issues/257#issuecomment-432594711
enforce: true,
}, },
}, },
}); });
......
This diff is collapsed.
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
"private": true, "private": true,
"description": "商户管理后台", "description": "商户管理后台",
"scripts": { "scripts": {
"analyze": "cross-env ANALYZE=1 umi build", "analyze": "cross-env ANALYZE=1 SENTRY_ENV=prod umi build",
"build": "umi build", "build": "umi build",
"build:pre": "cross-env PRE_ENV=pre umi build", "build:pre": "cross-env PRE_ENV=pre umi build",
"build:test": "cross-env SENTRY_ENV=test umi build", "build:test": "cross-env SENTRY_ENV=prod umi build",
"deploy": "npm run site && npm run gh-pages", "deploy": "npm run site && npm run gh-pages",
"fetch:blocks": "pro fetch-blocks && npm run prettier", "fetch:blocks": "pro fetch-blocks && npm run prettier",
"format-imports": "cross-env import-sort --write '**/*.{js,jsx,ts,tsx}'", "format-imports": "cross-env import-sort --write '**/*.{js,jsx,ts,tsx}'",
...@@ -125,7 +125,8 @@ ...@@ -125,7 +125,8 @@
"node-fetch": "^2.6.0", "node-fetch": "^2.6.0",
"prettier": "^1.17.1", "prettier": "^1.17.1",
"pro-download": "1.0.1", "pro-download": "1.0.1",
"stylelint": "^10.1.0" "stylelint": "^10.1.0",
"webpack": "^4.46.0"
}, },
"engines": { "engines": {
"node": ">=10.0.0" "node": ">=10.0.0"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment