findme-miniprogram-frontend/webpack.config.js

70 lines
2 KiB
JavaScript
Raw Normal View History

2025-12-27 17:16:03 +08:00
/*
* @Description: webpack 配置文件
* @Author: realrain 1936648485@qq.com
* @Date: 2025-10-19 16:04:58
* @LastEditors: realrain 1936648485@qq.com
* @LastEditTime: 2025-11-19 17:14:45
* @FilePath: \findme-miniprogram\webpack.config.js
* @X/Facebook: 1936648485@qq.com ~~~~~~~~~~~~~~~~~~~~~~~ Blogreallyrain.com
* Copyright (c) 2025 by real-rain, All Rights Reserved.
*/
/* eslint-disable @typescript-eslint/no-var-requires */
const path = require('path')
const fs = require('fs')
/**
* 清空 dist 文件夹
*/
if (fs.existsSync(path.resolve(__dirname, 'dist'))) {
fs.rmSync(path.resolve(__dirname, 'dist'), { recursive: true, force: true })
}
/**
* 自定义插件在构建完成后复制文件
*/
class CopyFilesPlugin {
apply(compiler) {
compiler.hooks.done.tap('CopyFilesPlugin', () => {
// 复制 COS SDK 的 min.js 文件
const cosSource = path.resolve(__dirname, 'node_modules', 'cos-wx-sdk-v5', 'dist', 'cos-wx-sdk-v5.min.js')
const cosTarget = path.resolve(__dirname, 'dist', 'cos-wx-sdk-v5.min.js')
if (fs.existsSync(cosSource)) {
fs.copyFileSync(cosSource, cosTarget)
console.log('[CopyFiles] COS SDK 已复制')
}
// 复制 SparkMD5 的 min.js 文件
const sparkSource = path.resolve(__dirname, 'node_modules', 'spark-md5', 'spark-md5.min.js')
const sparkTarget = path.resolve(__dirname, 'dist', 'spark-md5.min.js')
if (fs.existsSync(sparkSource)) {
fs.copyFileSync(sparkSource, sparkTarget)
console.log('[CopyFiles] SparkMD5 已复制')
}
})
}
}
module.exports = {
experiments: {
outputModule: true
},
entry: {
app: path.resolve(__dirname, 'utils', 'nim.js')
},
output: {
filename: 'nim.js',
libraryTarget: 'module',
path: path.resolve(__dirname, 'dist'),
// 每次构建新产物前, 能删除旧产物
clean: true
},
mode: 'production',
devtool: false,
optimization: {
usedExports: true
},
plugins: [
new CopyFilesPlugin()
]
}