mirror of https://github.com/vector-im/riot-web
Merge pull request #15345 from vector-im/t3chguy/fix/workbox
Disable workbox when running in webpack dev server, not in dev modepull/15376/head
commit
ca78985abc
|
@ -38,13 +38,17 @@ export default class WebPlatform extends VectorBasePlatform {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
// load service worker if available on this platform
|
// load service worker if available on this platform
|
||||||
// Service worker is disabled in development: https://github.com/GoogleChrome/workbox/issues/1790
|
if ('serviceWorker' in navigator) {
|
||||||
if ('serviceWorker' in navigator && process.env.NODE_ENV === "production") {
|
// Service worker is disabled in webpack-dev-server: https://github.com/GoogleChrome/workbox/issues/1790
|
||||||
navigator.serviceWorker.register('service-worker.js');
|
if (!process.env.WEBPACK_DEV_SERVER) {
|
||||||
|
navigator.serviceWorker.register('service-worker.js');
|
||||||
|
} else {
|
||||||
|
// we no longer run workbox when in webpack-dev-server, clean it up
|
||||||
|
navigator.serviceWorker.getRegistration().then(reg => reg && reg.unregister());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
getHumanReadableName(): string {
|
getHumanReadableName(): string {
|
||||||
return 'Web Platform'; // no translation required: only used for analytics
|
return 'Web Platform'; // no translation required: only used for analytics
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const {EnvironmentPlugin} = require('webpack');
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||||
const TerserPlugin = require('terser-webpack-plugin');
|
const TerserPlugin = require('terser-webpack-plugin');
|
||||||
|
@ -32,6 +33,8 @@ module.exports = (env, argv) => {
|
||||||
const jsSdkSrcDir = path.resolve(require.resolve("matrix-js-sdk/package.json"), '..', 'src');
|
const jsSdkSrcDir = path.resolve(require.resolve("matrix-js-sdk/package.json"), '..', 'src');
|
||||||
|
|
||||||
const plugins = [
|
const plugins = [
|
||||||
|
new EnvironmentPlugin(["WEBPACK_DEV_SERVER"]), // pass this as it is used for conditionally loading workbox
|
||||||
|
|
||||||
// This exports our CSS using the splitChunks and loaders above.
|
// This exports our CSS using the splitChunks and loaders above.
|
||||||
new MiniCssExtractPlugin({
|
new MiniCssExtractPlugin({
|
||||||
filename: 'bundles/[hash]/[name].css',
|
filename: 'bundles/[hash]/[name].css',
|
||||||
|
@ -92,7 +95,8 @@ module.exports = (env, argv) => {
|
||||||
}),
|
}),
|
||||||
];
|
];
|
||||||
|
|
||||||
if (argv.mode === "production") {
|
const isDevServer = process.env.WEBPACK_DEV_SERVER;
|
||||||
|
if (!isDevServer) {
|
||||||
plugins.push(new WorkboxPlugin.GenerateSW({
|
plugins.push(new WorkboxPlugin.GenerateSW({
|
||||||
maximumFileSizeToCacheInBytes: 22000000,
|
maximumFileSizeToCacheInBytes: 22000000,
|
||||||
runtimeCaching: [{
|
runtimeCaching: [{
|
||||||
|
|
Loading…
Reference in New Issue