mirror of
https://github.com/Lissy93/personal-security-checklist.git
synced 2024-12-27 00:09:34 -05:00
Adds Vercel adapters for server-side rendering
This commit is contained in:
parent
6e2881117e
commit
71139bc236
3
web/.gitignore
vendored
3
web/.gitignore
vendored
@ -39,3 +39,6 @@ lerna-debug.log*
|
|||||||
# Yarn
|
# Yarn
|
||||||
.yarn/*
|
.yarn/*
|
||||||
!.yarn/releases
|
!.yarn/releases
|
||||||
|
|
||||||
|
# Vercel
|
||||||
|
.vercel
|
||||||
|
@ -63,3 +63,47 @@ The production build will generate client and server modules by running both cli
|
|||||||
```shell
|
```shell
|
||||||
yarn build # or `yarn build`
|
yarn build # or `yarn build`
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Vercel Edge
|
||||||
|
|
||||||
|
This starter site is configured to deploy to [Vercel Edge Functions](https://vercel.com/docs/concepts/functions/edge-functions), which means it will be rendered at an edge location near to your users.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
The adaptor will add a new `vite.config.ts` within the `adapters/` directory, and a new entry file will be created, such as:
|
||||||
|
|
||||||
|
```
|
||||||
|
└── adapters/
|
||||||
|
└── vercel-edge/
|
||||||
|
└── vite.config.ts
|
||||||
|
└── src/
|
||||||
|
└── entry.vercel-edge.tsx
|
||||||
|
```
|
||||||
|
|
||||||
|
Additionally, within the `package.json`, the `build.server` script will be updated with the Vercel Edge build.
|
||||||
|
|
||||||
|
## Production build
|
||||||
|
|
||||||
|
To build the application for production, use the `build` command, this command will automatically run `npm run build.server` and `npm run build.client`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
[Read the full guide here](https://github.com/BuilderIO/qwik/blob/main/starters/adapters/vercel-edge/README.md)
|
||||||
|
|
||||||
|
## Dev deploy
|
||||||
|
|
||||||
|
To deploy the application for development:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
npm run deploy
|
||||||
|
```
|
||||||
|
|
||||||
|
Notice that you might need a [Vercel account](https://docs.Vercel.com/get-started/) in order to complete this step!
|
||||||
|
|
||||||
|
## Production deploy
|
||||||
|
|
||||||
|
The project is ready to be deployed to Vercel. However, you will need to create a git repository and push the code to it.
|
||||||
|
|
||||||
|
You can [deploy your site to Vercel](https://vercel.com/docs/concepts/deployments/overview) either via a Git provider integration or through the Vercel CLI.
|
||||||
|
16
web/adapters/vercel-edge/vite.config.mts
Normal file
16
web/adapters/vercel-edge/vite.config.mts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import { vercelEdgeAdapter } from "@builder.io/qwik-city/adapters/vercel-edge/vite";
|
||||||
|
import { extendConfig } from "@builder.io/qwik-city/vite";
|
||||||
|
import baseConfig from "../../vite.config.mts";
|
||||||
|
|
||||||
|
export default extendConfig(baseConfig, () => {
|
||||||
|
return {
|
||||||
|
build: {
|
||||||
|
ssr: true,
|
||||||
|
rollupOptions: {
|
||||||
|
input: ["src/entry.vercel-edge.tsx", "@qwik-city-plan"],
|
||||||
|
},
|
||||||
|
outDir: ".vercel/output/functions/_qwik-city.func",
|
||||||
|
},
|
||||||
|
plugins: [vercelEdgeAdapter()],
|
||||||
|
};
|
||||||
|
});
|
@ -1,12 +1,13 @@
|
|||||||
{
|
{
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --mode ssr",
|
|
||||||
"build": "qwik build",
|
"build": "qwik build",
|
||||||
"build.client": "vite build",
|
"build.client": "vite build",
|
||||||
"build.preview": "vite build --ssr src/entry.preview.tsx",
|
"build.preview": "vite build --ssr src/entry.preview.tsx",
|
||||||
|
"build.server": "vite build -c adapters/vercel-edge/vite.config.mts",
|
||||||
"build.types": "tsc --incremental --noEmit",
|
"build.types": "tsc --incremental --noEmit",
|
||||||
"deploy": "echo 'Run \"npm run qwik add\" to install a server adapter'",
|
"deploy": "vercel deploy",
|
||||||
|
"dev": "vite --mode ssr",
|
||||||
"dev.debug": "node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force",
|
"dev.debug": "node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force",
|
||||||
"fmt": "prettier --write .",
|
"fmt": "prettier --write .",
|
||||||
"fmt.check": "prettier --check .",
|
"fmt.check": "prettier --check .",
|
||||||
@ -30,6 +31,7 @@
|
|||||||
"tailwindcss": "^3.2.4",
|
"tailwindcss": "^3.2.4",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"undici": "^5.16.0",
|
"undici": "^5.16.0",
|
||||||
|
"vercel": "^29.1.1",
|
||||||
"vite": "^4.0.4",
|
"vite": "^4.0.4",
|
||||||
"vite-plugin-static-copy": "^1.0.1",
|
"vite-plugin-static-copy": "^1.0.1",
|
||||||
"vite-tsconfig-paths": "^4.3.1"
|
"vite-tsconfig-paths": "^4.3.1"
|
||||||
|
22
web/src/entry.vercel-edge.tsx
Normal file
22
web/src/entry.vercel-edge.tsx
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* WHAT IS THIS FILE?
|
||||||
|
*
|
||||||
|
* It's the entry point for Vercel Edge when building for production.
|
||||||
|
*
|
||||||
|
* Learn more about the Vercel Edge integration here:
|
||||||
|
* - https://qwik.builder.io/docs/deployments/vercel-edge/
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
import {
|
||||||
|
createQwikCity,
|
||||||
|
type PlatformVercel,
|
||||||
|
} from "@builder.io/qwik-city/middleware/vercel-edge";
|
||||||
|
import qwikCityPlan from "@qwik-city-plan";
|
||||||
|
import { manifest } from "@qwik-client-manifest";
|
||||||
|
import render from "./entry.ssr";
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface QwikCityPlatform extends PlatformVercel {}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default createQwikCity({ render, qwikCityPlan, manifest });
|
13
web/vercel.json
Normal file
13
web/vercel.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"source": "/build/(.*)",
|
||||||
|
"headers": [
|
||||||
|
{
|
||||||
|
"key": "Cache-Control",
|
||||||
|
"value": "public, max-age=31536000, s-maxage=31536000, immutable"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
4377
web/yarn.lock
4377
web/yarn.lock
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user