69 lines
1.2 KiB
JavaScript
69 lines
1.2 KiB
JavaScript
|
'use strict'
|
||
|
|
||
|
const webpack = require('webpack');
|
||
|
const path = require('path');
|
||
|
const { VueLoaderPlugin } = require('vue-loader');
|
||
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||
|
|
||
|
module.exports = {
|
||
|
mode: 'development',
|
||
|
entry: [
|
||
|
'./web/src/main.js'
|
||
|
],
|
||
|
output: {
|
||
|
path: path.resolve(__dirname, './web/dist'),
|
||
|
filename: 'bundle.js'
|
||
|
},
|
||
|
|
||
|
resolve: {
|
||
|
alias: {
|
||
|
'@': path.resolve(__dirname, './web/src'),
|
||
|
vue$: 'vue/dist/vue.runtime.esm.js'
|
||
|
},
|
||
|
},
|
||
|
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.vue$/,
|
||
|
use: 'vue-loader'
|
||
|
},
|
||
|
{
|
||
|
test: /\.scss$/,
|
||
|
use: [
|
||
|
'vue-style-loader',
|
||
|
{
|
||
|
loader: 'css-loader',
|
||
|
options: {
|
||
|
esModule: false
|
||
|
}
|
||
|
},
|
||
|
'sass-loader'
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
test: /\.js$/,
|
||
|
loader: 'babel-loader',
|
||
|
exclude: file => (
|
||
|
/node_modules/.test(file) &&
|
||
|
!/\.vue\.js/.test(file)
|
||
|
)
|
||
|
},
|
||
|
{
|
||
|
test: /\.(png)?$/,
|
||
|
use: [{
|
||
|
loader: 'file-loader'
|
||
|
}]
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
|
||
|
plugins: [
|
||
|
new VueLoaderPlugin(),
|
||
|
new HtmlWebpackPlugin({
|
||
|
title: 'RGBWifi',
|
||
|
template: 'web/public/index.html'
|
||
|
})
|
||
|
]
|
||
|
}
|