智慧工地前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
smart-factory/server/webpack.config.js

60 lines
1.6 KiB

const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
// 入口文件,指定项目的起点
entry: './bin/www',
// 输出配置
output: {
// 输出文件的路径
path: path.resolve(__dirname, '../dist'),
// 输出文件名
filename: 'server.js'
},
externals: {
mysql: 'commonjs mysql',
axios: 'commonjs axios',
},
target: 'node',
node: {
__dirname: false,
fs: 'empty',
net: 'empty',
tls: 'empty',
},
// 模块规则,用于处理各种类型的文件
module: {
rules: [
{
// 处理JavaScript文件
test: /\.js$/,
// 排除node_modules目录下的文件
exclude: /node_modules\/(?!http-proxy-middleware)/, // 处理 http-proxy-middleware 包
// 使用babel-loader进行转译
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: ['@babel/plugin-proposal-optional-chaining']
}
}
},
{
// 处理CSS文件
test: /\.css$/,
// 使用style-loader和css-loader加载CSS
use: ['style-loader', 'css-loader']
}
]
},
plugins: [
new CleanWebpackPlugin(),
new CopyWebpackPlugin({
patterns: [
{ from: path.resolve(__dirname, '../web/dist'), to: path.resolve(__dirname, '../dist/dist') },
{ from: path.resolve(__dirname, './build'), to: path.resolve(__dirname, '../dist') }
]
})
]
};