Browse Source

don't set cache header on serviceWorker.js

Danny Coates 6 years ago
parent
commit
1a78f57515
4 changed files with 5796 additions and 14846 deletions
  1. 0 2
      build/generate_asset_map.js
  2. 5770 14822
      package-lock.json
  3. 4 2
      server/bin/prod.js
  4. 22 20
      webpack.config.js

+ 0 - 2
build/generate_asset_map.js

@@ -19,8 +19,6 @@ function kv(f) {
 module.exports = function() {
   const files = fs.readdirSync(path.join(__dirname, '..', 'assets'));
   const code = `module.exports = {
-    "package.json": require('../package.json'),
-    "serviceWorker.js" : require('../app/serviceWorker.js'),
     ${files.map(kv).join(',\n')}
   };`;
   return {

File diff suppressed because it is too large
+ 5770 - 14822
package-lock.json


+ 4 - 2
server/bin/prod.js

@@ -18,8 +18,10 @@ routes(app);
 
 app.use(
   express.static(path.resolve(__dirname, '../../dist/'), {
-    setHeaders: function(res) {
-      res.set('Cache-Control', 'public, max-age=31536000, immutable');
+    setHeaders: function(res, path) {
+      if (!/serviceWorker\.js$/.test(path)) {
+        res.set('Cache-Control', 'public, max-age=31536000, immutable');
+      }
       res.removeHeader('Pragma');
     }
   })

+ 22 - 20
webpack.config.js

@@ -3,7 +3,7 @@ const webpack = require('webpack');
 const CopyPlugin = require('copy-webpack-plugin');
 const ManifestPlugin = require('webpack-manifest-plugin');
 const VersionPlugin = require('./build/version_plugin');
-const MiniCssExtractPlugin = require("mini-css-extract-plugin");
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 
 const webJsOptions = {
   babelrc: false,
@@ -12,6 +12,18 @@ const webJsOptions = {
   plugins: ['yo-yoify']
 };
 
+const serviceWorker = {
+  target: 'webworker',
+  entry: {
+    serviceWorker: './app/serviceWorker.js'
+  },
+  output: {
+    filename: '[name].js',
+    path: path.resolve(__dirname, 'dist'),
+    publicPath: '/'
+  }
+};
+
 const web = {
   target: 'web',
   entry: {
@@ -193,29 +205,19 @@ const web = {
   }
 };
 
-const serviceWorker = {
-  target: 'webworker',
-  entry: {
-    serviceWorker: './app/serviceWorker.js'
-  },
-  output: {
-    filename: '[name].js',
-    path: path.resolve(__dirname, 'dist'),
-    publicPath: '/'
-  }
-}
-
-module.exports = (env, argv) => {
+module.exports = () => {
+  //(env, argv) => {
   // TODO: why are styles not output in 'production' mode?
-  const mode = 'development' //argv.mode || 'production';
+  const mode = 'development'; //argv.mode || 'production';
   console.error(`mode: ${mode}`);
   web.mode = serviceWorker.mode = mode;
   if (mode === 'development') {
-    web.devtool = 'inline-source-map';
-    web.devServer.before = require('./server/bin/dev');
-    web.entry.tests = ['./test/frontend/index.js'];
     // istanbul instruments the source for code coverage
     webJsOptions.plugins.push('istanbul');
+    web.devServer.before = require('./server/bin/dev');
+    web.entry.tests = ['./test/frontend/index.js'];
+    web.devtool = 'inline-source-map';
+    serviceWorker.devtool = 'inline-source-map';
   }
-  return [web, serviceWorker]
-}
+  return [serviceWorker, web];
+};

Some files were not shown because too many files changed in this diff