diff --git a/lib/utils/export.js b/lib/utils/export.js index 1788309..5bfa707 100644 --- a/lib/utils/export.js +++ b/lib/utils/export.js @@ -1,8 +1,10 @@ +const path = require('path'); const sander = require('sander'); const app = require('express')(); const cheerio = require('cheerio'); const fetch = require('node-fetch'); const URL = require('url-parse'); +const generate_asset_cache = require('./generate_asset_cache.js'); const sapper = require('../index.js'); const { PORT = 3000, OUTPUT_DIR = 'dist' } = process.env; @@ -10,13 +12,22 @@ const { dest } = require('../config.js'); const origin = `http://localhost:${PORT}`; +function read_json(file) { + return JSON.parse(sander.readFileSync(file, { encoding: 'utf-8' })); +} + module.exports = function() { // Prep output directory sander.rimrafSync(OUTPUT_DIR); + const { service_worker } = generate_asset_cache( + read_json(path.join(dest, 'stats.client.json')), + read_json(path.join(dest, 'stats.server.json')) + ); + sander.copydirSync('assets').to(OUTPUT_DIR); - sander.copydirSync(`${dest}/client`).to(`${OUTPUT_DIR}/client`); - sander.copyFileSync(`${dest}/service-worker.js`).to(`${OUTPUT_DIR}/service-worker.js`); + sander.copydirSync(dest, 'client').to(OUTPUT_DIR, 'client'); + sander.writeFileSync(OUTPUT_DIR, 'service-worker.js', service_worker); // Intercept server route fetches function save(res) { diff --git a/lib/utils/generate_asset_cache.js b/lib/utils/generate_asset_cache.js index 35c792a..d0143c7 100644 --- a/lib/utils/generate_asset_cache.js +++ b/lib/utils/generate_asset_cache.js @@ -44,7 +44,9 @@ module.exports = function generate_asset_cache(clientInfo, serverInfo) { server: { entry: path.resolve(dest, 'server', serverInfo.assetsByChunkName.main) - } + }, + + service_worker }; };