26 lines
1.4 KiB
TypeScript
26 lines
1.4 KiB
TypeScript
import { defineConfig } from 'vite';
|
|||
|
|
|
||
|
|
// Настройка проекта под wa-sqlite (SQLite в браузере через WebAssembly).
|
||
|
|
export default defineConfig({
|
||
|
|
// Файлы .wasm (сборка SQLite из пакета wa-sqlite) считаем статическими
|
||
|
|
// ассетами: Vite копирует их в dist/ без трансформации и отдаёт в dev
|
||
|
|
// как есть. Импорт вида `import url from '...wasm?url'` работает всегда.
|
||
|
|
assetsInclude: ['**/*.wasm'],
|
||
|
|
|
||
|
|
optimizeDeps: {
|
||
|
|
// wa-sqlite сам находит свой .wasm-бинарник по соседству с .mjs-загрузчиком
|
||
|
|
// (new URL("wa-sqlite.wasm", import.meta.url)). Если позволить Vite
|
||
|
|
// пре-баблить пакет в .vite/deps, import.meta.url укажет не туда и загрузка
|
||
|
|
// SQLite упадёт. Поэтому пакет исключаем из пре-баблинга.
|
||
|
|
exclude: ['wa-sqlite'],
|
||
|
|
},
|
||
|
|
|
||
|
|
server: {
|
||
|
|
headers: {
|
||
|
|
// Требуется для OPFS (Origin Private File System): без этого заголовка
|
||
|
|
// браузер блокирует доступ к OPFS из встроенного (cross-origin)
|
||
|
|
// контекста. Дублируется через <meta> в index.html.
|
||
|
|
'Cross-Origin-Embedder-Policy': 'require-corp',
|
||
|
|
},
|
||
|
|
},
|
||
|
|
});
|