Browse Source

升级框架版本

main
likunming 1 month ago
parent
commit
86a08686c0
  1. 6
      irbs.cust.rating/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer
  2. 6
      irbs.frontend/tailwind.config.cjs
  3. 5
      irbs.frontend/tsconfig.json
  4. 34
      irbs.frontend/util-components-generator.cjs
  5. 96
      irbs.frontend/webpack.config.common.cjs
  6. 20
      irbs.frontend/webpack.config.mf.cjs
  7. 20
      irbs.frontend/webpack.env.build.cjs
  8. 13
      irbs.frontend/webpack.env.prod.cjs
  9. 6
      irbs.shrcb.poc.frontend/tailwind.config.cjs
  10. 5
      irbs.shrcb.poc.frontend/tsconfig.json
  11. 7
      irbs.shrcb.poc.frontend/util-components-generator.cjs
  12. 97
      irbs.shrcb.poc.frontend/webpack.config.common.cjs
  13. 28
      irbs.shrcb.poc.frontend/webpack.config.mf.cjs
  14. 13
      irbs.shrcb.poc.frontend/webpack.env.prod.cjs

6
irbs.cust.rating/src/main/resources/META-INF/services/io.sc.platform.core.initializer.ApplicationInitializer

@ -1 +1,5 @@
irbs.cust.rating.initializer.CustRatingWorkFlowInitializer
irbs.cust.rating.initializer.CustRatingWorkFlowInitializer
irbs.cust.rating.initializer.DefaultWorkFlowInitializer
irbs.cust.rating.initializer.RebirthWorkFlowInitializer
irbs.cust.rating.initializer.RiskExposureWorkFlowInitializer
irbs.cust.rating.initializer.SampleWorkFlowInitializer

6
irbs.frontend/tailwind.config.cjs

@ -8,11 +8,7 @@ module.exports = {
},
screens: {
"xs": {"min": "0px", "max": "599px"},
"sm": {"min": "600px", "max": "1023px"},
"md": {"min": "1024px", "max": "1439px"},
"lg": {"min": "1440px", "max": "1919px"},
"xl": {"min": "1920px"},
},
},
plugins: [],

5
irbs.frontend/tsconfig.json

@ -9,13 +9,14 @@
"allowImportingTsExtensions": true,
"noImplicitAny": false,
"moduleResolution": "node16",
"sourceMap": true,
"sourceMap": false,
"baseUrl": ".",
"paths": {
"@/*": [
"src/*"
]
},
"jsxImportSource": "vue"
"jsxImportSource": "vue",
"isolatedModules": true
}
}

34
irbs.frontend/util-components-generator.cjs

@ -1,10 +1,10 @@
const fs = require('fs');
const Json5 =require('json5');
/**
* 用于自动生成前端组件
* 通过 src/routes/routes.json 文件构建 src/components/index.ts 文件
*/
const fs = require('fs');
const Json5 =require('json5');
// 解析前端路由配置文件
const routesJson = Json5.parse(fs.readFileSync('./src/routes/routes.json', 'utf8'));
@ -13,16 +13,13 @@ content +='/**\n';
content +=' * 此文件为自动生成文件,请勿修改\n';
content +=' */\n\n';
for(const route of routesJson){
const componentName =route.component.replaceAll('.','_');
const componentPath =route.componentPath;
content +=`import ${componentName} from '${componentPath}';\n`;
generateImportComonents(route);
}
content +='\n';
content +='const localComponents = { \n';
for(const route of routesJson){
const componentName =route.component.replaceAll('.','_');
content +=`'${route.component}': ${componentName},\n`;
generateComonents(route);
}
content +='}\n\n';
content +='export default localComponents;\n';
@ -30,3 +27,24 @@ content +='export default localComponents;\n';
fs.writeFileSync('./src/components/index.ts', content);
console.info('components generated!');
function generateImportComonents(route){
const componentName =route.component.replaceAll('.','_');
const componentPath =route.componentPath;
content +=`import ${componentName} from '${componentPath}';\n`;
if(route.children && route.children.length){
for(const child of route.children){
generateImportComonents(child);
}
}
}
function generateComonents(route){
const componentName =route.component.replaceAll('.','_');
content +=`'${route.component}': ${componentName},\n`;
if(route.children && route.children.length){
for(const child of route.children){
generateComonents(child);
}
}
}

96
irbs.frontend/webpack.config.common.cjs

@ -1,16 +1,16 @@
/**
* webpack 通用配置
*/
const path = require('path'); // path
const webpack = require('webpack'); // webpack
const json5 = require('json5'); // json5
const HtmlWebpackPlugin = require('html-webpack-plugin'); // webpack html 生成插件
const CopyWebpackPlugin = require('copy-webpack-plugin'); // webpack copy 插件
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // 抽取 css 插件
const { VueLoaderPlugin } = require('vue-loader'); // vue loader 插件
const ESLintPlugin = require('eslint-webpack-plugin'); // eslint 插件
const packageJson = require('./package.json'); // package.json
const projectName =packageJson.name; // 项目名称
const path = require('path'); // path
const webpack = require('webpack'); // webpack
const json5 = require('json5'); // json5
const HtmlWebpackPlugin = require('html-webpack-plugin'); // webpack html 生成插件
const CopyWebpackPlugin = require('copy-webpack-plugin'); // webpack copy 插件
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // 抽取 css 插件
const { VueLoaderPlugin } = require('vue-loader'); // vue loader 插件
const ESLintPlugin = require('eslint-webpack-plugin'); // eslint 插件
const packageJson = require('./package.json'); // package.json
const projectName = packageJson.name; // 项目名称
module.exports = {
// 入口文件
@ -37,35 +37,40 @@ module.exports = {
exclude: /node_modules/,
use: [
{
loader: "babel-loader",
loader: 'babel-loader',
options: {
cacheDirectory: true,
}
}
]
},
},
],
},
// css
{
test: /\.(sa|sc|c)ss$/,
use: [{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
}]
use: [
{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
},
{
loader: 'sass-loader',
},
],
},
// 字体文件
// 字体文件, 仅包含 woff2 文件
{
test: /\.(woff|woff2|eot|ttf|otf)(\?.*)?$/,
type: 'asset/resource',
generator: {
filename: `fonts/[name].[contenthash:5].[ext]`,
}
},
},
// json5
@ -84,8 +89,23 @@ module.exports = {
use: [
{
loader: 'vue-loader',
}
]
},
],
},
// 解决 @maxgraph/core 的问题, 避免出现以下错误
// ERROR in ./node_modules/.pnpm/@maxgraph+core@0.13.0/node_modules/@maxgraph/core/dist/index.js 175:0-24
// Module not found: Error: Can't resolve './types' in '/Users/wangshaoping/wspsc/workspace/wangshaoping/v8/platform/io.sc.platform.core.frontend/node_modules/.pnpm/@maxgraph+core@0.13.0/node_modules/@maxgraph/core/dist'
// Did you mean 'types.js'?
// BREAKING CHANGE: The request './types' failed to resolve only because it was resolved as fully specified
// (probably because the origin is strict EcmaScript Module, e. g. a module with javascript mimetype, a '*.mjs' file, or a '*.js' file where the package.json contains '"type": "module"').
// The extension in the request is mandatory for it to be fully specified.
{
test: /\.js$/,
include: /node_modules[\/\\]@maxgraph[\/\\]core/,
resolve: {
fullySpecified: false,
},
},
],
},
@ -94,7 +114,7 @@ module.exports = {
plugins: [
new webpack.DefinePlugin({
__VUE_OPTIONS_API__: JSON.stringify(true),
__VUE_PROD_DEVTOOLS__: JSON.stringify(false)
__VUE_PROD_DEVTOOLS__: JSON.stringify(false),
}),
// 进度显示插件
@ -103,7 +123,7 @@ module.exports = {
// css 抽取插件
new MiniCssExtractPlugin({
filename: `css/[name].[contenthash:5].css`,
chunkFilename: `css/[name].[contenthash:5].css`
chunkFilename: `css/[name].[contenthash:5].css`,
}),
// 自动生成静态 index.html 文件
@ -112,6 +132,7 @@ module.exports = {
filename: `index.html`,
minify: false,
inject: 'body',
// 提供时间戳, 避免 index.html 中引入 main.xxxx.js 中的 xxxx 和生成的 js 文件不一致的问题
timestamp: new Date().getTime(),
}),
@ -123,14 +144,14 @@ module.exports = {
toType: 'dir',
filter: async (resourcePath) => {
// 不复制 index.html 因为 index.html 已经由 HtmlWebpackPlugin 插件生成了
if (resourcePath.endsWith('index.html') || resourcePath.endsWith('.DS_Store')) {
if (resourcePath.endsWith('/public/index.html') || resourcePath.endsWith('.DS_Store')) {
return false;
}
return true;
},
info: { minimized: true },
}
]
},
],
}),
// vue loader 插件
@ -141,9 +162,7 @@ module.exports = {
fix: true,
formatter: 'stylish',
extensions: ['js', 'ts', 'vue', 'cjs'],
exclude: [
'node_modules',
],
exclude: ['node_modules'],
}),
],
@ -154,6 +173,11 @@ module.exports = {
'@': path.resolve(__dirname, 'src'),
},
// 设置支持的模块扩展名,即这些扩展名的文件可以作为模块被使用
extensions: ['.ts', '.js', '.cjs', '.vue']
extensions: ['.js', '.cjs', '.ts', '.vue'],
fallback: {
fs: false,
os: false,
path: false,
},
},
};

20
irbs.frontend/webpack.config.mf.cjs

@ -2,7 +2,7 @@
* webpack module federation 配置
*/
const fs = require('fs'); // 文件读取
const Json5 =require('json5'); // json5
const Json5 =require('json5'); // json5
const { ModuleFederationPlugin } = require('webpack').container; // webpack 模块联邦插件
const packageJson = require('./package.json'); // package.json
const projectName =packageJson.name; // 项目名称
@ -43,6 +43,19 @@ module.exports = {
'@codemirror/search': { requiredVersion: deps['@codemirror/search'], singleton: true },
'@codemirror/state': { requiredVersion: deps['@codemirror/state'], singleton: true },
'@codemirror/view': { requiredVersion: deps['@codemirror/view'], singleton: true },
'@maxgraph/core': { requiredVersion: deps['@maxgraph/core'], singleton: true },
'@univerjs/core': { requiredVersion: deps['@univerjs/core'], singleton: true },
'@univerjs/design': { requiredVersion: deps['@univerjs/design'], singleton: true },
'@univerjs/docs': { requiredVersion: deps['@univerjs/docs'], singleton: true },
'@univerjs/docs-ui': { requiredVersion: deps['@univerjs/docs-ui'], singleton: true },
'@univerjs/engine-formula': { requiredVersion: deps['@univerjs/engine-formula'], singleton: true },
'@univerjs/engine-render': { requiredVersion: deps['@univerjs/engine-render'], singleton: true },
'@univerjs/facade': { requiredVersion: deps['@univerjs/facade'], singleton: true },
'@univerjs/sheets': { requiredVersion: deps['@univerjs/sheets'], singleton: true },
'@univerjs/sheets-formula': { requiredVersion: deps['@univerjs/sheets-formula'], singleton: true },
'@univerjs/sheets-ui': { requiredVersion: deps['@univerjs/sheets-ui'], singleton: true },
'@univerjs/thread-comment': { requiredVersion: deps['@univerjs/thread-comment'], singleton: true },
'@univerjs/ui': { requiredVersion: deps['@univerjs/ui'], singleton: true },
'@vueuse/core': { requiredVersion: deps['@vueuse/core'], singleton: true },
'axios': { requiredVersion: deps['axios'], singleton: true },
'codemirror': { requiredVersion: deps['codemirror'], singleton: true },
@ -51,15 +64,16 @@ module.exports = {
'exceljs':{ requiredVersion: deps['exceljs'], singleton: true },
'file-saver':{ requiredVersion: deps['file-saver'], singleton: true },
'luckyexcel':{ requiredVersion: deps['luckyexcel'], singleton: true },
"mockjs": { requiredVersion: deps['mockjs'], singleton: true },
'mockjs': { requiredVersion: deps['mockjs'], singleton: true },
'pinia': { requiredVersion: deps['pinia'], singleton: true },
'platform-core': { requiredVersion: deps['platform-core'], singleton: true },
'quasar': { requiredVersion: deps['quasar'], singleton: true },
'svg-path-commander': { requiredVersion: deps['svg-path-commander'], singleton: true },
'vue': { requiredVersion: deps['vue'], singleton: true },
'vue-codemirror6': { requiredVersion: deps['vue-codemirror6'], singleton: true },
'vue-dompurify-html':{ requiredVersion: deps['vue-dompurify-html'], singleton: true },
'vue-i18n': { requiredVersion: deps['vue-i18n'], singleton: true },
'vue-router': { requiredVersion: deps['vue-router'], singleton: true },
'xml-formatter': { requiredVersion: deps['xml-formatter'], singleton: true }
}
}),
]

20
irbs.frontend/webpack.env.build.cjs

@ -24,7 +24,7 @@ module.exports = merge(common, mf, {
cacheGroups: {
'shared': {
name: 'vue',
test: /[\\/]node_modules[\\/](axios|dayjs|exceljs|file-saver|luckyexcel|mockjs)[\\/]/,
test: /[\\/]node_modules[\\/](axios|dayjs|exceljs|file-saver|luckyexcel|mockjs|xml-formatter)[\\/]/,
priority: 20,
chunks: 'all',
enforce: true
@ -38,7 +38,7 @@ module.exports = merge(common, mf, {
},
'codemirror':{
name: 'codemirror',
test: /[\\/]node_modules[\\/](codemirror|vue-codemirror6|@codemirror[\\/]autocomplete|@codemirror[\\/]commands|@codemirror[\\/]lang-html|@codemirror[\\/]lang-java|@codemirror[\\/]lang-javascript|@codemirror[\\/]lang-json|@codemirror[\\/]lang-sql|@codemirror[\\/]lang-xml|@codemirror[\\/]language|@codemirror[\\/]search|@codemirror[\\/]state|@codemirror[\\/]view)[\\/]/,
test: /[\\/]node_modules[\\/](codemirror|@codemirror[\\/]autocomplete|@codemirror[\\/]commands|@codemirror[\\/]lang-html|@codemirror[\\/]lang-java|@codemirror[\\/]lang-javascript|@codemirror[\\/]lang-json|@codemirror[\\/]lang-sql|@codemirror[\\/]lang-xml|@codemirror[\\/]language|@codemirror[\\/]search|@codemirror[\\/]state|@codemirror[\\/]view)[\\/]/,
priority: 20,
chunks: 'all',
enforce: true
@ -64,6 +64,20 @@ module.exports = merge(common, mf, {
chunks: 'all',
enforce: true
},
'maxgraph': {
name: 'maxgraph',
test: /[\\/]node_modules[\\/]@maxgraph[\\/]/,
priority: 20,
chunks: 'all',
enforce: true
},
'@univerjs': {
name: '@univerjs',
test: /[\\/]node_modules[\\/]@univerjs[\\/]/,
priority: 20,
chunks: 'all',
enforce: true
},
'view': {
name: 'view',
test: /[\\/]view[\\/]/,
@ -80,4 +94,4 @@ module.exports = merge(common, mf, {
}
}
},
});
});

13
irbs.frontend/webpack.env.prod.cjs

@ -2,9 +2,9 @@
* 生产环境构建
*/
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // css 压缩插件
const TerserPlugin = require("terser-webpack-plugin"); // js 压缩插件
const { merge } = require('webpack-merge'); // webpack 配置合并函数
const build = require('./webpack.env.build.cjs'); // 开发环境构建配置
const TerserPlugin = require('terser-webpack-plugin'); // js 压缩插件
const { merge } = require('webpack-merge'); // webpack 配置合并函数
const build = require('./webpack.env.build.cjs'); // 开发环境构建配置
module.exports = merge(build, {
mode: 'production',
@ -15,12 +15,13 @@ module.exports = merge(build, {
// eval-source-map| build:slowest, rebuild:ok | Recommended choice for development builds with high quality SourceMaps.
// source-map | build:slowest, rebuild:slowest | Recommended choice for production builds with high quality SourceMaps.
// -------------------------------------------------------------------------------------------------------------------------------
devtool: 'source-map',
devtool: 'eval-source-map',
optimization: {
minimize: true,
minimizer: [
new CssMinimizerPlugin(), // css 压缩插件
new TerserPlugin({ // js 压缩插件
new CssMinimizerPlugin(), // css 压缩插件
new TerserPlugin({
// js 压缩插件
extractComments: false,
terserOptions: {
format: {

6
irbs.shrcb.poc.frontend/tailwind.config.cjs

@ -8,11 +8,7 @@ module.exports = {
},
screens: {
"xs": {"min": "0px", "max": "599px"},
"sm": {"min": "600px", "max": "1023px"},
"md": {"min": "1024px", "max": "1439px"},
"lg": {"min": "1440px", "max": "1919px"},
"xl": {"min": "1920px"},
},
},
plugins: [],

5
irbs.shrcb.poc.frontend/tsconfig.json

@ -10,12 +10,13 @@
"allowImportingTsExtensions": true,
"noImplicitAny": false,
"moduleResolution": "node16",
"sourceMap": true,
"sourceMap": false,
"baseUrl": ".",
"paths": {
"@/*": [
"src/*"
]
}
},
"isolatedModules": true
}
}

7
irbs.shrcb.poc.frontend/util-components-generator.cjs

@ -1,10 +1,10 @@
const fs = require('fs');
const Json5 =require('json5');
/**
* 用于自动生成前端组件
* 通过 src/routes/routes.json 文件构建 src/components/index.ts 文件
*/
const fs = require('fs');
const Json5 =require('json5');
// 解析前端路由配置文件
const routesJson = Json5.parse(fs.readFileSync('./src/routes/routes.json', 'utf8'));
@ -28,7 +28,6 @@ fs.writeFileSync('./src/components/index.ts', content);
console.info('components generated!');
function generateImportComonents(route){
const componentName =route.component.replaceAll('.','_');
const componentPath =route.componentPath;

97
irbs.shrcb.poc.frontend/webpack.config.common.cjs

@ -1,16 +1,16 @@
/**
* webpack 通用配置
*/
const path = require('path'); // path
const webpack = require('webpack'); // webpack
const json5 = require('json5'); // json5
const HtmlWebpackPlugin = require('html-webpack-plugin'); // webpack html 生成插件
const CopyWebpackPlugin = require('copy-webpack-plugin'); // webpack copy 插件
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // 抽取 css 插件
const { VueLoaderPlugin } = require('vue-loader'); // vue loader 插件
const ESLintPlugin = require('eslint-webpack-plugin'); // eslint 插件
const packageJson = require('./package.json'); // package.json
const projectName =packageJson.name; // 项目名称
const path = require('path'); // path
const webpack = require('webpack'); // webpack
const json5 = require('json5'); // json5
const HtmlWebpackPlugin = require('html-webpack-plugin'); // webpack html 生成插件
const CopyWebpackPlugin = require('copy-webpack-plugin'); // webpack copy 插件
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // 抽取 css 插件
const { VueLoaderPlugin } = require('vue-loader'); // vue loader 插件
const ESLintPlugin = require('eslint-webpack-plugin'); // eslint 插件
const packageJson = require('./package.json'); // package.json
const projectName = packageJson.name; // 项目名称
module.exports = {
// 入口文件
@ -37,35 +37,40 @@ module.exports = {
exclude: /node_modules/,
use: [
{
loader: "babel-loader",
loader: 'babel-loader',
options: {
cacheDirectory: true,
}
}
]
},
},
],
},
// css
{
test: /\.(sa|sc|c)ss$/,
use: [{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
}]
use: [
{
loader: MiniCssExtractPlugin.loader,
},
{
loader: 'css-loader',
},
{
loader: 'postcss-loader',
},
{
loader: 'sass-loader',
},
],
},
// 字体文件
// 字体文件, 仅包含 woff2 文件
{
test: /\.(woff|woff2|eot|ttf|otf)(\?.*)?$/,
type: 'asset/resource',
generator: {
filename: `fonts/[name].[contenthash:5].[ext]`,
}
},
},
// json5
@ -84,8 +89,23 @@ module.exports = {
use: [
{
loader: 'vue-loader',
}
]
},
],
},
// 解决 @maxgraph/core 的问题, 避免出现以下错误
// ERROR in ./node_modules/.pnpm/@maxgraph+core@0.13.0/node_modules/@maxgraph/core/dist/index.js 175:0-24
// Module not found: Error: Can't resolve './types' in '/Users/wangshaoping/wspsc/workspace/wangshaoping/v8/platform/io.sc.platform.core.frontend/node_modules/.pnpm/@maxgraph+core@0.13.0/node_modules/@maxgraph/core/dist'
// Did you mean 'types.js'?
// BREAKING CHANGE: The request './types' failed to resolve only because it was resolved as fully specified
// (probably because the origin is strict EcmaScript Module, e. g. a module with javascript mimetype, a '*.mjs' file, or a '*.js' file where the package.json contains '"type": "module"').
// The extension in the request is mandatory for it to be fully specified.
{
test: /\.js$/,
include: /node_modules[\/\\]@maxgraph[\/\\]core/,
resolve: {
fullySpecified: false,
},
},
],
},
@ -94,7 +114,7 @@ module.exports = {
plugins: [
new webpack.DefinePlugin({
__VUE_OPTIONS_API__: JSON.stringify(true),
__VUE_PROD_DEVTOOLS__: JSON.stringify(false)
__VUE_PROD_DEVTOOLS__: JSON.stringify(false),
}),
// 进度显示插件
@ -103,7 +123,7 @@ module.exports = {
// css 抽取插件
new MiniCssExtractPlugin({
filename: `css/[name].[contenthash:5].css`,
chunkFilename: `css/[name].[contenthash:5].css`
chunkFilename: `css/[name].[contenthash:5].css`,
}),
// 自动生成静态 index.html 文件
@ -112,6 +132,7 @@ module.exports = {
filename: `index.html`,
minify: false,
inject: 'body',
// 提供时间戳, 避免 index.html 中引入 main.xxxx.js 中的 xxxx 和生成的 js 文件不一致的问题
timestamp: new Date().getTime(),
}),
@ -129,8 +150,8 @@ module.exports = {
return true;
},
info: { minimized: true },
}
]
},
],
}),
// vue loader 插件
@ -141,9 +162,7 @@ module.exports = {
fix: true,
formatter: 'stylish',
extensions: ['js', 'ts', 'vue', 'cjs'],
exclude: [
'node_modules',
],
exclude: ['node_modules'],
}),
],
@ -154,11 +173,11 @@ module.exports = {
'@': path.resolve(__dirname, 'src'),
},
// 设置支持的模块扩展名,即这些扩展名的文件可以作为模块被使用
extensions: ['.ts', '.js', '.cjs', '.vue'],
extensions: ['.js', '.cjs', '.ts', '.vue'],
fallback: {
"fs": false,
"os": false,
"path": false,
}
fs: false,
os: false,
path: false,
},
},
};

28
irbs.shrcb.poc.frontend/webpack.config.mf.cjs

@ -44,6 +44,18 @@ module.exports = {
'@codemirror/state': { requiredVersion: deps['@codemirror/state'], singleton: true },
'@codemirror/view': { requiredVersion: deps['@codemirror/view'], singleton: true },
'@maxgraph/core': { requiredVersion: deps['@maxgraph/core'], singleton: true },
'@univerjs/core': { requiredVersion: deps['@univerjs/core'], singleton: true },
'@univerjs/design': { requiredVersion: deps['@univerjs/design'], singleton: true },
'@univerjs/docs': { requiredVersion: deps['@univerjs/docs'], singleton: true },
'@univerjs/docs-ui': { requiredVersion: deps['@univerjs/docs-ui'], singleton: true },
'@univerjs/engine-formula': { requiredVersion: deps['@univerjs/engine-formula'], singleton: true },
'@univerjs/engine-render': { requiredVersion: deps['@univerjs/engine-render'], singleton: true },
'@univerjs/facade': { requiredVersion: deps['@univerjs/facade'], singleton: true },
'@univerjs/sheets': { requiredVersion: deps['@univerjs/sheets'], singleton: true },
'@univerjs/sheets-formula': { requiredVersion: deps['@univerjs/sheets-formula'], singleton: true },
'@univerjs/sheets-ui': { requiredVersion: deps['@univerjs/sheets-ui'], singleton: true },
'@univerjs/thread-comment': { requiredVersion: deps['@univerjs/thread-comment'], singleton: true },
'@univerjs/ui': { requiredVersion: deps['@univerjs/ui'], singleton: true },
'@vueuse/core': { requiredVersion: deps['@vueuse/core'], singleton: true },
'axios': { requiredVersion: deps['axios'], singleton: true },
'codemirror': { requiredVersion: deps['codemirror'], singleton: true },
@ -52,26 +64,16 @@ module.exports = {
'exceljs':{ requiredVersion: deps['exceljs'], singleton: true },
'file-saver':{ requiredVersion: deps['file-saver'], singleton: true },
'luckyexcel':{ requiredVersion: deps['luckyexcel'], singleton: true },
"mockjs": { requiredVersion: deps['mockjs'], singleton: true },
'mockjs': { requiredVersion: deps['mockjs'], singleton: true },
'pinia': { requiredVersion: deps['pinia'], singleton: true },
'platform-core': { requiredVersion: deps['platform-core'], singleton: true },
'quasar': { requiredVersion: deps['quasar'], singleton: true },
'svg-path-commander': { requiredVersion: deps['svg-path-commander'], singleton: true },
'vue': { requiredVersion: deps['vue'], singleton: true },
'vue-dompurify-html':{ requiredVersion: deps['vue-dompurify-html'], singleton: true },
'vue-i18n': { requiredVersion: deps['vue-i18n'], singleton: true },
'vue-router': { requiredVersion: deps['vue-router'], singleton: true },
"xml-formatter": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/core": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/design": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/docs": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/docs-ui": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/engine-formula": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/engine-render": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/facade": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/sheets": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/sheets-formula": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/sheets-ui": { requiredVersion: deps['vue-router'], singleton: true },
"@univerjs/ui": { requiredVersion: deps['vue-router'], singleton: true }
'xml-formatter': { requiredVersion: deps['xml-formatter'], singleton: true }
}
}),
]

13
irbs.shrcb.poc.frontend/webpack.env.prod.cjs

@ -2,9 +2,9 @@
* 生产环境构建
*/
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); // css 压缩插件
const TerserPlugin = require("terser-webpack-plugin"); // js 压缩插件
const { merge } = require('webpack-merge'); // webpack 配置合并函数
const build = require('./webpack.env.build.cjs'); // 开发环境构建配置
const TerserPlugin = require('terser-webpack-plugin'); // js 压缩插件
const { merge } = require('webpack-merge'); // webpack 配置合并函数
const build = require('./webpack.env.build.cjs'); // 开发环境构建配置
module.exports = merge(build, {
mode: 'production',
@ -15,12 +15,13 @@ module.exports = merge(build, {
// eval-source-map| build:slowest, rebuild:ok | Recommended choice for development builds with high quality SourceMaps.
// source-map | build:slowest, rebuild:slowest | Recommended choice for production builds with high quality SourceMaps.
// -------------------------------------------------------------------------------------------------------------------------------
devtool: 'source-map',
devtool: 'eval-source-map',
optimization: {
minimize: true,
minimizer: [
new CssMinimizerPlugin(), // css 压缩插件
new TerserPlugin({ // js 压缩插件
new CssMinimizerPlugin(), // css 压缩插件
new TerserPlugin({
// js 压缩插件
extractComments: false,
terserOptions: {
format: {

Loading…
Cancel
Save