maputnik/config/webpack.config.js

76 lines
2.1 KiB
JavaScript
Raw Normal View History

2015-06-15 15:21:19 +02:00
"use strict";
var webpack = require('webpack');
var path = require('path');
2018-10-09 21:43:35 +02:00
var rules = require('./webpack.rules');
2015-06-15 15:21:19 +02:00
var HtmlWebpackPlugin = require('html-webpack-plugin');
2020-02-17 19:52:16 +01:00
var HtmlWebpackInlineSVGPlugin = require('html-webpack-inline-svg-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
2015-06-15 15:21:19 +02:00
const HOST = process.env.HOST || "127.0.0.1";
const PORT = process.env.PORT || "8888";
module.exports = {
target: 'web',
2018-10-06 22:05:33 +02:00
mode: 'development',
entry: [
`webpack-dev-server/client?http://${HOST}:${PORT}`,
`webpack/hot/only-dev-server`,
`./src/index.jsx` // Your appʼs entry point
],
devtool: process.env.WEBPACK_DEVTOOL || 'cheap-module-source-map',
output: {
path: path.join(__dirname, '..', 'public'),
filename: 'bundle.js'
},
resolve: {
2017-11-07 12:05:30 +01:00
extensions: ['.js', '.jsx']
},
module: {
noParse: [
/mapbox-gl\/dist\/mapbox-gl.js/
],
2018-10-09 21:43:35 +02:00
rules: rules
},
node: {
fs: "empty",
2016-12-03 23:28:43 +01:00
net: 'empty',
tls: 'empty'
},
devServer: {
contentBase: "./public",
2021-08-04 09:36:37 +02:00
// See <https://webpack.js.org/configuration/stats/> for details
stats: 'minimal',
// enable HMR
hot: true,
// embed the webpack-dev-server runtime into the bundle
inline: true,
// serve index.html in place of 404 responses to allow HTML5 history
historyApiFallback: true,
port: PORT,
host: HOST,
watchOptions: {
// Disabled polling by default as it causes lots of CPU usage and hence drains laptop batteries. To enable polling add WEBPACK_DEV_SERVER_POLLING to your environment
// See <https://webpack.js.org/configuration/watch/#watchoptions-poll> for details
poll: (!!process.env.WEBPACK_DEV_SERVER_POLLING ? true : false),
watch: false
},
},
plugins: [
2017-11-07 12:05:30 +01:00
new webpack.NoEmitOnErrorsPlugin(),
new webpack.HotModuleReplacementPlugin(),
new HtmlWebpackPlugin({
title: 'Maputnik',
template: './src/template.html'
}),
2020-02-17 19:52:16 +01:00
new HtmlWebpackInlineSVGPlugin({
runPreEmit: true,
}),
new CopyWebpackPlugin([
{
from: './src/manifest.json',
to: 'manifest.json'
}
])
]
2015-06-15 15:21:19 +02:00
};