Files
pig-farm-controller-fe/webpack.config.js

60 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-09-19 14:25:20 +08:00
const { VueLoaderPlugin } = require('vue-loader');
const path = require('path');
2025-09-19 14:53:16 +08:00
const HtmlWebpackPlugin = require('html-webpack-plugin');
2025-09-19 14:25:20 +08:00
module.exports = (env, argv) => {
const isDevelopment = argv.mode === 'development';
return {
entry: './src/main.js',
output: {
filename: 'bundle.js',
2025-09-19 14:53:16 +08:00
path: path.resolve(__dirname, 'dist'),
clean: true
2025-09-19 14:25:20 +08:00
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
{
test: /\.css$/,
use: [
'style-loader',
'css-loader'
]
}
]
},
plugins: [
2025-09-19 14:53:16 +08:00
new VueLoaderPlugin(),
new HtmlWebpackPlugin({
template: './index.html',
filename: 'index.html'
})
2025-09-19 14:25:20 +08:00
],
devServer: {
2025-09-19 14:53:16 +08:00
static: {
directory: path.join(__dirname, 'dist'),
},
2025-09-19 14:25:20 +08:00
hot: true,
open: true,
2025-09-19 14:53:16 +08:00
historyApiFallback: true,
port: 8080
2025-09-19 14:25:20 +08:00
},
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
'vue': '@vue/runtime-dom'
},
extensions: ['.js', '.vue', '.json']
},
devtool: isDevelopment ? 'eval-source-map' : 'source-map'
};
};