| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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,
- }),
- ],
- },
- };
|