mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-05 20:02:47 +01:00
123 lines
3.8 KiB
Markdown
123 lines
3.8 KiB
Markdown
# Desplega a Vercel
|
|
|
|
[Vercel](https://vercel.com) ofereix l'experiència de desplegament més senzilla per a llocs estàtics.
|
|
|
|
## Desplegament amb un clic
|
|
|
|
[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
|
|
|
|
## Desplegament manual
|
|
|
|
### Pas 1: fes un fork del repositori
|
|
|
|
Fes un fork de [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) al teu compte de GitHub.
|
|
|
|
### Pas 2: importa'l a Vercel
|
|
|
|
1. Ves a [vercel.com/new](https://vercel.com/new)
|
|
2. Selecciona el repositori del teu fork
|
|
3. Configura el projecte:
|
|
|
|
| Paràmetre | Valor |
|
|
| ---------------- | --------------- |
|
|
| Framework Preset | Vite |
|
|
| Build Command | `npm run build` |
|
|
| Output Directory | `dist` |
|
|
| Install Command | `npm install` |
|
|
|
|
### Pas 3: variables d'entorn (opcional)
|
|
|
|
Afegeix-les si cal:
|
|
|
|
| Variable | Descripció |
|
|
| ----------------------- | ------------------------------------------------------------------- |
|
|
| `SIMPLE_MODE` | Posa-ho a `true` per a una interfície mínima |
|
|
| `VITE_BRAND_NAME` | Nom de marca personalitzat (substitueix "BentoPDF") |
|
|
| `VITE_BRAND_LOGO` | Ruta del logotip relativa a `public/` (p. ex. `images/my-logo.svg`) |
|
|
| `VITE_FOOTER_TEXT` | Text personalitzat del peu de pàgina o dels drets d'autor |
|
|
| `VITE_DEFAULT_LANGUAGE` | Idioma per defecte de la interfície (p. ex. `fr`, `de`, `es`) |
|
|
|
|
### Pas 4: desplega
|
|
|
|
Fes clic a "Deploy" i espera que s'acabi la compilació.
|
|
|
|
## Domini personalitzat
|
|
|
|
1. Ves a la configuració del projecte
|
|
2. Navega a "Domains"
|
|
3. Afegeix el teu domini personalitzat
|
|
4. Configura el DNS segons les instruccions
|
|
|
|
## Limitacions
|
|
|
|
::: warning Fitxers grans
|
|
Les funcions serverless de Vercel tenen un límit de 50 MB. Com que BentoPDF és un lloc estàtic, això no hauria d'afectar-te, però els mòduls WASM són grans (~100 MB en total). Assegura't que es serveixin des de la carpeta `/public`.
|
|
:::
|
|
|
|
## Resolució de problemes
|
|
|
|
### Temps d'espera de la compilació esgotat
|
|
|
|
Si les compilacions s'esgoten, prova això:
|
|
|
|
```json
|
|
// vercel.json
|
|
{
|
|
"buildCommand": "npm run build",
|
|
"outputDirectory": "dist"
|
|
}
|
|
```
|
|
|
|
### 404 en actualitzar la pàgina
|
|
|
|
Afegeix un `vercel.json` per a l'encaminament SPA:
|
|
|
|
```json
|
|
{
|
|
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
|
|
}
|
|
```
|
|
|
|
### La conversió de Word/ODT/Excel a PDF no funciona
|
|
|
|
Les conversions de LibreOffice WASM requereixen `SharedArrayBuffer`, que necessita aquestes capçaleres de resposta a totes les pàgines:
|
|
|
|
- `Cross-Origin-Embedder-Policy: require-corp`
|
|
- `Cross-Origin-Opener-Policy: same-origin`
|
|
|
|
Els fitxers precomprimits `.wasm.gz` i `.data.gz` també necessiten `Content-Encoding: gzip` perquè el navegador els descomprimeixi.
|
|
|
|
Afegeix-ho al teu `vercel.json`:
|
|
|
|
```json
|
|
{
|
|
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }],
|
|
"headers": [
|
|
{
|
|
"source": "/(.*)",
|
|
"headers": [
|
|
{ "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" },
|
|
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
|
|
{ "key": "Cross-Origin-Resource-Policy", "value": "cross-origin" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/libreoffice-wasm/soffice.wasm.gz",
|
|
"headers": [
|
|
{ "key": "Content-Type", "value": "application/wasm" },
|
|
{ "key": "Content-Encoding", "value": "gzip" }
|
|
]
|
|
},
|
|
{
|
|
"source": "/libreoffice-wasm/soffice.data.gz",
|
|
"headers": [
|
|
{ "key": "Content-Type", "value": "application/octet-stream" },
|
|
{ "key": "Content-Encoding", "value": "gzip" }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Per verificar-ho, obre la consola de DevTools i executa `console.log(window.crossOriginIsolated)`: hauria de retornar `true`.
|