From cf90476255bf43272e12b862f8689762a6da4ec1 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Sun, 18 Mar 2018 11:08:31 -0700 Subject: [PATCH 1/3] Ignore source map files in %sapper.scripts% --- src/middleware.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/middleware.ts b/src/middleware.ts index 63ad84a..3fc9da0 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -193,6 +193,7 @@ function get_route_handler(chunks: Record, routes: RouteObject[] let scripts = [] .concat(chunks.main) // chunks main might be an array. it might not! thanks, webpack + .filter(function (file) { return !file.match(/\.map$/); }) .map(file => ``) .join(''); @@ -368,4 +369,4 @@ function try_serialize(data: any) { } catch (err) { return null; } -} \ No newline at end of file +} From fc2312eba6b1975e1662a0d9a5d54f4a43ab5f42 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Sun, 18 Mar 2018 16:16:52 -0700 Subject: [PATCH 2/3] Add full *.map file support --- src/cli/export.ts | 4 ++++ src/middleware.ts | 5 +++++ src/middleware/mime-types.md | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/cli/export.ts b/src/cli/export.ts index 95a155d..9618c70 100644 --- a/src/cli/export.ts +++ b/src/cli/export.ts @@ -25,6 +25,10 @@ export async function exporter(export_dir: string, { basepath = '' }) { sander.copyFileSync(build_dir, 'service-worker.js').to(export_dir, 'service-worker.js'); } + if (sander.existsSync(build_dir, 'service-worker.js.map')) { + sander.copyFileSync(build_dir, 'service-worker.js.map').to(export_dir, 'service-worker.js.map'); + } + const port = await ports.find(3000); const origin = `http://localhost:${port}`; diff --git a/src/middleware.ts b/src/middleware.ts index 3fc9da0..8f0f06e 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -77,6 +77,11 @@ export default function middleware({ routes, store }: { cache_control: 'max-age=600' }), + fs.existsSync(path.join(output, 'service-worker.js.map')) && serve({ + pathname: '/service-worker.js.map', + cache_control: 'max-age=600' + }), + serve({ prefix: '/client/', cache_control: 'max-age=31536000' diff --git a/src/middleware/mime-types.md b/src/middleware/mime-types.md index 06d6c9c..f0ec9dc 100644 --- a/src/middleware/mime-types.md +++ b/src/middleware/mime-types.md @@ -29,7 +29,7 @@ application/java-archive jar application/java-serialized-object ser application/java-vm class application/javascript js -application/json json +application/json json map application/jsonml+json jsonml application/lost+xml lostxml application/mac-binhex40 hqx From 52dfd6e939d04c1e90b279adf0b247bc8c9f1e8c Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Sun, 18 Mar 2018 16:31:53 -0700 Subject: [PATCH 3/3] Don't preload .map files --- src/middleware.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/middleware.ts b/src/middleware.ts index 8f0f06e..8e87da1 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -149,6 +149,7 @@ function get_route_handler(chunks: Record, routes: RouteObject[] // TODO detect other stuff we can preload? images, CSS, fonts? const link = [] .concat(chunks.main, chunks[route.id]) + .filter(file => !file.match(/\.map$/)) .map(file => `<${req.baseUrl}/client/${file}>;rel="preload";as="script"`) .join(', '); @@ -198,7 +199,7 @@ function get_route_handler(chunks: Record, routes: RouteObject[] let scripts = [] .concat(chunks.main) // chunks main might be an array. it might not! thanks, webpack - .filter(function (file) { return !file.match(/\.map$/); }) + .filter(file => !file.match(/\.map$/)) .map(file => ``) .join('');