findme-miniprogram-frontend/webpack.config.js
2025-12-27 17:16:03 +08:00

69 lines
2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @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()
]
}