From 41be2548ce82ba408588c5f0dee007c97d026e55 Mon Sep 17 00:00:00 2001 From: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:54:06 +0900 Subject: [PATCH] =?UTF-8?q?files=E3=82=92=E3=83=97=E3=83=AD=E3=82=AD?= =?UTF-8?q?=E3=82=B7=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/frontend-embed/vite.config.ts | 18 ++++++++++++++++++ packages/frontend/vite.config.ts | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/packages/frontend-embed/vite.config.ts b/packages/frontend-embed/vite.config.ts index 151d316190..93749e1170 100644 --- a/packages/frontend-embed/vite.config.ts +++ b/packages/frontend-embed/vite.config.ts @@ -1,4 +1,6 @@ import path from 'path'; +import { readFile } from 'fs/promises'; +import * as yaml from 'js-yaml'; import pluginVue from '@vitejs/plugin-vue'; import { type UserConfig, defineConfig } from 'vite'; @@ -9,6 +11,21 @@ import pluginJson5 from './vite.json5.js'; const extensions = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.json', '.json5', '.svg', '.sass', '.scss', '.css', '.vue']; +//#region バックエンド/フロントエンド分離開発モード時のデータをプロキシする +// https://github.com/misskey-dev/misskey/pull/15284 +const { port } = yaml.load(await readFile('../../.config/default.yml', 'utf-8')); + +function getProxySettings(): NonNullable['proxy'] { + if (process.env.NODE_ENV === 'development') { + return { + '/files': `http://localhost:${port}`, + }; + } else { + return {}; + } +} +//#endregion + /** * Misskeyのフロントエンドにバンドルせず、CDNなどから別途読み込むリソースを記述する。 * CDNを使わずにバンドルしたい場合、以下の配列から該当要素を削除orコメントアウトすればOK @@ -69,6 +86,7 @@ export function getConfig(): UserConfig { // クライアント側のWSポートをViteサーバーのポートに強制させることで、正しくHMRが機能するようになる clientPort: 5174, }, + proxy: getProxySettings(), }, plugins: [ diff --git a/packages/frontend/vite.config.ts b/packages/frontend/vite.config.ts index 3c4b19a571..a07c1eaa20 100644 --- a/packages/frontend/vite.config.ts +++ b/packages/frontend/vite.config.ts @@ -1,7 +1,9 @@ import path from 'path'; +import { readFile } from 'fs/promises'; import pluginReplace from '@rollup/plugin-replace'; import pluginVue from '@vitejs/plugin-vue'; import { type UserConfig, defineConfig } from 'vite'; +import * as yaml from 'js-yaml'; import locales from '../../locales/index.js'; import meta from '../../package.json'; @@ -11,6 +13,21 @@ import pluginJson5 from './vite.json5.js'; const extensions = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.json', '.json5', '.svg', '.sass', '.scss', '.css', '.vue']; +//#region バックエンド/フロントエンド分離開発モード時のデータをプロキシする +// https://github.com/misskey-dev/misskey/pull/15284 +const { port } = yaml.load(await readFile('../../.config/default.yml', 'utf-8')); + +function getProxySettings(): NonNullable['proxy'] { + if (process.env.NODE_ENV === 'development') { + return { + '/files': `http://localhost:${port}`, + }; + } else { + return {}; + } +} +//#endregion + /** * Misskeyのフロントエンドにバンドルせず、CDNなどから別途読み込むリソースを記述する。 * CDNを使わずにバンドルしたい場合、以下の配列から該当要素を削除orコメントアウトすればOK @@ -71,6 +88,7 @@ export function getConfig(): UserConfig { // クライアント側のWSポートをViteサーバーのポートに強制させることで、正しくHMRが機能するようになる clientPort: 5173, }, + proxy: getProxySettings(), headers: { // なんか効かない 'X-Frame-Options': 'DENY', },