const TerserPlugin = require("terser-webpack-plugin"); const webpack = require("webpack"); const path = require("path"); const pkg = require("./package.json"); // 判断是否启用 TQ_SDK const isTQ_SDK = process.env.TQ_SDK === 'true'; // 判断是否是开发环境 const isDev = process.env.NODE_ENV === 'development'; // 根据 TQ_SDK 和开发环境动态设置文件名 let outputFilename; if (isTQ_SDK) { outputFilename = `[name]-tqsdk.${pkg.version}.js`; } else { outputFilename = `[name].${pkg.version}.js` } const plugins = [ // 注入环境变量 new webpack.DefinePlugin({ 'process.env.TQ_SDK': JSON.stringify(process.env.TQ_SDK || 'false') }) ]; // 如果不是 TQ_SDK 模式,忽略 tqsdk 相关文件 if (!isTQ_SDK) { plugins.push( new webpack.IgnorePlugin({ resourceRegExp: /^\.\.\/lib\/tqsdk/ }) ); } module.exports = { entry: { rywxsdk: "./index.js", }, experiments: { outputModule: true, }, output: { filename: outputFilename, path: path.resolve(__dirname, "dist"), library: { type: "module", }, }, resolve: { fallback: { "crypto": false } }, plugins: plugins, optimization: { minimize: true, // 开发环境不压缩,加快构建速度 minimizer: [ new TerserPlugin({ terserOptions: { format: { comments: false, }, }, extractComments: false, }), ], }, };