打包
打包规范umd。(global, commonjs, amd)
// webpack.config.js
const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');
module.exports = {
mode:"development",
entry:{
'xxx-base-common': './packages/index.ts',
'xxx-base-common.min': './packages/index.ts',
},
output:{
path: path.resolve(__dirname, "dist"),
filename: "[name].js",
library: "XxxBaseCommon", // 指定打包出来的库的名称
libraryTarget: "umd", // 指定打包出来的规范 不能加default,否则导出的数据是undefined
},
module:{
rules:[
{
test: /\.tsx?$/,
use: ["babel-loader", "ts-loader"],
exclude: [path.resolve(__dirname, "node_modules"), path.resolve(__dirname, "libs")]
}
]
},
resolve: {
extensions: [ '.tsx', '.ts', '.js' ]
},
optimization: {
minimize:true,
minimizer:[
new TerserPlugin({
include:/\.min\.js$/, // 指定只有 min.js 的文件才压缩
})
]
}
}
兼容性处理:polyfill 参考:blog.willson-wang.com/blog/babel-…
// .babelrc
{
"presets": [
[
"@babel/preset-env",
{
"targets": "> 5%",
"useBuiltIns": "usage",
"corejs": "3"
}
]
]
}