postgres-operator/ui/app/webpack.config.js

119 lines
2.9 KiB
JavaScript

const DEBUG = process.env.NODE_ENV !== 'production'
const entry = ['./src/app.js']
const path = require('path')
const pkg = require('./package.json')
const webpack = require('webpack')
module.exports = {
context: path.join(__dirname, './'),
devtool: DEBUG ? 'inline-source-map' : false,
entry: entry,
mode: DEBUG ? 'development' : 'production',
target: 'web',
node: {
fs: 'empty'
},
externals: {
'$': '$',
'jquery': 'jQuery',
},
output: {
// filename: DEBUG ? 'app.js' : 'app-[hash].js'
filename: 'app.js',
library: 'App',
path: path.resolve(pkg.config.buildDir),
publicPath: DEBUG ? '/' : './',
},
plugins: [
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.HotModuleReplacementPlugin(),
new webpack.LoaderOptionsPlugin({
debug: DEBUG,
}),
// Print on rebuild when watching; see
// https://github.com/webpack/webpack/issues/1499#issuecomment-155064216
function () {
this.plugin('watch-run', (watching, callback) => {
console.log('Begin compile at ' + new Date())
callback()
})
},
],
module: {
rules: [
{
test: /\.tag\.pug$/,
loader: 'riot-tag-loader',
exclude: /node_modules/,
query: {
hot: true,
template: 'pug',
type: 'es6',
},
},
{
test: /\.tag$/,
loader: 'riot-tag-loader',
exclude: /node_modules/,
query: {
hot: false,
type: 'es6',
},
},
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
plugins: ['@babel/transform-runtime'],
presets: ['@babel/preset-env'],
},
},
{
test: /\.html$/,
loader: 'file-loader?name=[path][name].[ext]',
exclude: /node_modules/,
},
{
test: /\.jpe?g$|\.svg$|\.png$/,
loader: 'file-loader?name=[path][name].[ext]',
exclude: /node_modules/,
},
{
test: /\.json$/,
loader: 'json',
exclude: /node_modules/,
},
{
test: /\.(otf|eot|svg|ttf|woff|woff2)(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=8192&mimetype=application/font-woff',
},
{
test: /\.json$/,
loader: 'json',
include: path.join(__dirname, 'node_modules', 'pixi.js'),
},
],
},
}