LLM-front / webpack.config.js
Songyou's picture
Upload 8 files
99415de verified
const path = require('path');
const webpack = require('webpack');
module.exports = {
mode: 'development', // 或 'production'
entry: './src/index.js', // 入口文件
output: {
path: path.resolve(__dirname, 'dist'), // 输出目录
filename: 'bundle.js',
library: 'KetcherBundle',
libraryTarget: 'umd',
globalObject: 'this',
},
module: {
rules: [
{
test: /\.js$/, // 处理所有 .js 文件
exclude: /node_modules/, // 排除 node_modules 目录
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'], // 使用 env 预设
plugins: ['@babel/plugin-transform-runtime'], // 使用 transform-runtime 插件
},
},
},
{
test: /\.wasm$/, // 处理 .wasm 文件
type: 'javascript/auto', // 需要设置为 'javascript/auto' 以正确加载 WASM 文件
loader: 'file-loader',
options: {
name: '[name].[hash].wasm',
outputPath: 'binaryWasm/', // 输出到 binaryWasm/ 目录
},
},
],
},
resolve: {
fallback: {
path: require.resolve('path-browserify'), // Polyfill for 'path' module
buffer: require.resolve('buffer/'), // Polyfill for 'buffer' module
process: require.resolve('process/browser'), // Polyfill for 'process' module
fs: false, // 不提供 'fs' 模块的 polyfill
},
},
plugins: [
new webpack.ProvidePlugin({
Buffer: ['buffer', 'Buffer'], // 自动提供 Buffer
process: 'process/browser', // 自动提供 process
}),
],
experiments: {
asyncWebAssembly: true, // 启用异步 WASM
},
};