公共工具函数打包问题

57 阅读1分钟
打包

打包规范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"
        }
      ]
    ]
}