const path = require('path'); const { CleanWebpackPlugin } = require('clean-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin'); module.exports = { entry: './src/index.js', // 你的源码入口(确保指向正确的 index.js) target: ['web', 'es5'], mode: 'production', output: { path: path.resolve(__dirname, 'dist'), filename: 'main.js', // 关键:设置 UMD 导出,暴露变量名为 UtmTracker library: 'UtmTracker', // 全局变量名(浏览器环境) libraryTarget: 'umd', // 支持 UMD 格式 globalObject: 'this', // 兼容浏览器(window)和 Node(global) umdNamedDefine: true // 为 AMD 模块命名,避免匿名问题 }, plugins: [ new CleanWebpackPlugin() // 打包前清理 dist 目录 ], optimization: { minimizer: [ new TerserPlugin({ terserOptions: { // 禁止压缩时混淆 UtmTracker 名称 keep_fnames: /UtmTracker/, // 保留构造函数名 keep_classnames: true // 若用 class 定义,保留类名 } }) ] }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: 'babel-loader' // 确保 ES6+ 语法被转译 } ] } };