0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-16 21:46:22 -05:00

feat(vercel): remove nodeVersion (#3368)

* Remove `nodeVersion`

* Changeset
This commit is contained in:
Juan Martín Seery 2022-05-16 15:34:46 -03:00 committed by GitHub
parent 9dd16bace5
commit 9d01f93b1c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 19 deletions

View file

@ -0,0 +1,5 @@
---
'@astrojs/vercel': patch
---
Remove `nodeVersion` option for `serverless` target. Now it is inferred from Vercel

View file

@ -59,19 +59,6 @@ import vercel from '@astrojs/vercel/serverless';
import vercel from '@astrojs/vercel/static';
```
### Node.js version
When deploying to `serverless` you can choose what version of Node.js you want to target: `12.x`, `14.x` or `16.x` (default).
```js
import { defineConfig } from 'astro/config';
import vercel from '@astrojs/vercel/serverless';
export default defineConfig({
adapter: vercel({ nodeVersion: '14.x' })
});
```
## Limitations
**A few known complex packages (example: [puppeteer](https://github.com/puppeteer/puppeteer)) do not support bundling and therefore will not work properly with this adapter.** By default, Vercel doesn't include npm installed files & packages from your project's `./node_modules` folder. To address this, the `@astrojs/vercel` adapter automatically bundles your final build output using `esbuild`.

View file

@ -14,11 +14,7 @@ function getAdapter(): AstroAdapter {
};
}
export interface Options {
nodeVersion?: '12.x' | '14.x' | '16.x';
}
export default function vercelEdge({ nodeVersion = '16.x' }: Options = {}): AstroIntegration {
export default function vercelEdge(): AstroIntegration {
let _config: AstroConfig;
let functionFolder: URL;
let serverEntry: string;
@ -57,7 +53,7 @@ export default function vercelEdge({ nodeVersion = '16.x' }: Options = {}): Astr
// Serverless function config
// https://vercel.com/docs/build-output-api/v3#vercel-primitives/serverless-functions/configuration
await writeJson(new URL(`./.vc-config.json`, functionFolder), {
runtime: `nodejs${nodeVersion}`,
runtime: getRuntime(),
handler: serverEntry,
launcherType: 'Nodejs',
});
@ -76,3 +72,9 @@ export default function vercelEdge({ nodeVersion = '16.x' }: Options = {}): Astr
},
};
}
function getRuntime() {
const version = process.version.slice(1); // 'v16.5.0' --> '16.5.0'
const major = version.split('.')[0]; // '16.5.0' --> '16'
return `nodejs${major}.x`;
}