@@ -3,9 +3,7 @@ import { relative } from 'path';
33import { fileURLToPath } from 'url' ;
44import esbuild from 'esbuild' ;
55
6- // By writing to .output, we opt in to the Vercel filesystem API:
7- // https://vercel.com/docs/file-system-api
8- const VERCEL_OUTPUT = '.output' ;
6+ const dir = '.vercel_build_output' ;
97
108/** @type {import('.') } **/
119export default function ( ) {
@@ -15,17 +13,24 @@ export default function () {
1513 async adapt ( builder ) {
1614 const tmp = builder . getBuildDirectory ( 'vercel-tmp' ) ;
1715
18- builder . rimraf ( VERCEL_OUTPUT ) ;
16+ builder . rimraf ( dir ) ;
1917 builder . rimraf ( tmp ) ;
2018
19+ const files = fileURLToPath ( new URL ( './files' , import . meta. url ) ) ;
20+
21+ const dirs = {
22+ static : `${ dir } /static` ,
23+ lambda : `${ dir } /functions/node/render`
24+ } ;
25+
2126 builder . log . minor ( 'Prerendering static pages...' ) ;
27+
2228 await builder . prerender ( {
23- dest : `${ VERCEL_OUTPUT } /static`
29+ dest : `${ dir } /static`
2430 } ) ;
2531
2632 builder . log . minor ( 'Generating serverless function...' ) ;
2733
28- const files = fileURLToPath ( new URL ( './files' , import . meta. url ) ) ;
2934 const relativePath = relative ( tmp , builder . getServerDirectory ( ) ) ;
3035
3136 builder . copy ( files , tmp , {
@@ -44,33 +49,33 @@ export default function () {
4449
4550 await esbuild . build ( {
4651 entryPoints : [ `${ tmp } /entry.js` ] ,
47- outfile : `${ VERCEL_OUTPUT } /server/pages/__render .js` ,
52+ outfile : `${ dirs . lambda } /index .js` ,
4853 target : 'node14' ,
4954 bundle : true ,
5055 platform : 'node'
5156 } ) ;
5257
53- writeFileSync (
54- `${ VERCEL_OUTPUT } /server/pages/package.json` ,
55- JSON . stringify ( { type : 'commonjs' } )
56- ) ;
58+ writeFileSync ( `${ dirs . lambda } /package.json` , JSON . stringify ( { type : 'commonjs' } ) ) ;
5759
5860 builder . log . minor ( 'Copying assets...' ) ;
59- builder . writeClient ( `${ VERCEL_OUTPUT } /static` ) ;
60- builder . writeStatic ( `${ VERCEL_OUTPUT } /static` ) ;
6161
62- builder . log . minor ( 'Writing manifests...' ) ;
62+ builder . writeStatic ( dirs . static ) ;
63+ builder . writeClient ( dirs . static ) ;
64+
65+ builder . log . minor ( 'Writing routes...' ) ;
66+
67+ builder . mkdirp ( `${ dir } /config` ) ;
6368 writeFileSync (
64- `${ VERCEL_OUTPUT } / routes-manifest .json` ,
65- JSON . stringify ( {
66- version : 3 ,
67- dynamicRoutes : [
68- {
69- page : '/__render' ,
70- regex : '^ /.*'
71- }
72- ]
73- } )
69+ `${ dir } /config/ routes.json` ,
70+ JSON . stringify ( [
71+ {
72+ handle : 'filesystem'
73+ } ,
74+ {
75+ src : '/.*' ,
76+ dest : '.vercel/functions/render'
77+ }
78+ ] )
7479 ) ;
7580 }
7681 } ;
0 commit comments