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 7935ec7..40a3df1 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -80,6 +80,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' @@ -147,6 +152,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(', '); @@ -231,6 +237,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(file => !file.match(/\.map$/)) .map(file => ``) .join(''); @@ -406,4 +413,4 @@ function try_serialize(data: any) { } catch (err) { return null; } -} \ No newline at end of file +} 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