Viteモノレポで上位ディレクトリへのアクセスを許可する - server.fs.allow
問題
モノレポ構造でサブパッケージが上位ディレクトリの共有モジュールをimportすると、Viteがブロックします。The request url is outside of Vite serving allow listエラーが発生します。
解決方法
// vite.config.ts
import { defineConfig } from 'vite';
import { sveltekit } from '@sveltejs/kit/vite';
import path from 'path';
export default defineConfig({
plugins: [sveltekit()],
server: {
port: 5174,
fs: {
allow: [
// 上位ディレクトリへのアクセスを許可(モノレポルート)
path.resolve(__dirname, '..'),
],
},
},
});
ポイント
- Viteはセキュリティ上、プロジェクトルート外のファイルアクセスをデフォルトでブロックします。モノレポでは共有パッケージが上位にあるため、これが問題になります。
server.fs.allowにパスを追加すると、そのディレクトリ以下のファイルをサーブできます。..を指定すると1階層上まで許可されます。- この設定はDevサーバー(
vite dev)にのみ影響します。プロダクションビルドには適用されません。ビルド時はバンドラーが自動的に処理します。