fight-of-the-mobiles/src/cordova/webpack.config.js
2018-09-04 19:47:42 +02:00

70 lines
1.8 KiB
JavaScript
Executable File

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
module.exports = {
entry: [
'./index.jsx'
],
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'www')
},
resolve: {
extensions: ['.js', '.jsx']
},
context: path.resolve(__dirname, 'src'),
devServer: {
contentBase: path.resolve(__dirname, 'www/assets'),
open: true,
},
plugins: [
new HtmlWebpackPlugin({
template: 'index.html'
}),
new MiniCssExtractPlugin({
filename: 'bundle.css'
})
],
module: {
rules: [{
test: /\.jsx?$/,
include: /src/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-react', '@babel/preset-env']
}
}
}, {
test: /\.html$/,
use: ['html-loader']
}, {
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader']
}, {
test: /\.less$/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader']
}, {
test: /\.(jpg|png|gif|svg)$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: './assets/',
}
}]
}, {
test: /\.(ttf|eot|woff|woff2|otf)$/,
use: [{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: './assets/',
}
}]
}]
}
}