kdayun-compnent-develop/kdayun-compnent-pack/webpack.config.production.js

93 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

const path = require('path');
const TerserPlugin = require('terser-webpack-plugin')
const htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
mode: 'production',
name: 'yhdesigner-userDefineModule',
entry: {
"designer": './src/index.ts',
"preview": './src/preview.ts'
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, './dist')
},
module: {
unknownContextCritical: false,
rules: [
{
test: /\.tsx?$/,
use: ['ts-loader'],
exclude: /node_modules/
}, {
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.less$/,
use: ['style-loader', 'css-loader', 'less-loader']
},
{
test: /\.(gif|png|jpeg|eot|woff|ttf|svg|pdf)$/,
use: ['file-loader']
}
]
},
resolve: {
extensions: ['.tsx', '.ts', ".js"],
alias: {
'vue$': 'vue/dist/vue.esm.js'
}
},
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
ecma: 5,
parse: {},
warnings: false,
keep_classnames: true,
keep_fnames: true,
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log'] // 移除console
},
},
extractComments: false
}),
]
},
performance: {
hints: 'warning',
//入口起点的最大体积 整数类型(以字节为单位)
maxEntrypointSize: 50000000,
//生成文件的最大体积 整数类型(以字节为单位 300k
maxAssetSize: 30000000,
//只给出 js 文件的性能提示
assetFilter: function (assetFilename) {
return assetFilename.endsWith('.css') || assetFilename.endsWith('.js');
}
},
plugins: [
new htmlWebpackPlugin({
template: './src/index.html',
filename: 'index.html',
inject: 'body',
chunks: ['designer']
}),
new htmlWebpackPlugin({
template: './src/preview.html',
filename: 'preview.html',
inject: 'body',
chunks: ['preview']
}),
],
externals: {
jquery: "$",
lodash: "_",
echarts: "echarts",
}
}