webamp/config/webpack.prod.js
2018-11-19 20:08:20 -08:00

40 lines
1.2 KiB
JavaScript

const webpack = require("webpack");
const merge = require("webpack-merge");
const workboxPlugin = require("workbox-webpack-plugin");
const GitRevisionPlugin = require("git-revision-webpack-plugin");
const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer");
const common = require("./webpack.common.js");
const gitRevisionPlugin = new GitRevisionPlugin();
const config = merge(common, {
devtool: "source-map",
mode: "production",
plugins: [
new BundleAnalyzerPlugin({
analyzerMode: "static",
reportFilename: "prod-report.html",
openAnalyzer: false
}),
new webpack.DefinePlugin({
SENTRY_DSN: JSON.stringify(
"https://12b6be8ef7c44f28ac37ab5ed98fd294@sentry.io/146021"
),
COMMITHASH: JSON.stringify(gitRevisionPlugin.commithash())
}),
new workboxPlugin.GenerateSW({
swDest: "service-worker.js",
// importWorkboxFrom: "local",
clientsClaim: true,
skipWaiting: true,
// Safari (mobile and desktop) seems to have CORs issues when loading
// .mp3s from service workers.
exclude: [/\.mp3/, /\.wsz/]
})
]
});
config.entry.webamp.unshift("./js/googleAnalytics.min.js");
module.exports = config;