enhance: Vite HMR while yarn dev, and more build tuning (#9361)

* enhance: Vite HMR while yarn dev, and more build tuning

* use localhost

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
This commit is contained in:
tamaina 2022-12-20 13:05:36 +09:00 committed by GitHub
parent b4b9d5d552
commit 2fe86fd869
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 102 additions and 23 deletions

View file

@ -12,6 +12,7 @@ import { In, IsNull } from 'typeorm';
import fastifyStatic from '@fastify/static';
import fastifyView from '@fastify/view';
import fastifyCookie from '@fastify/cookie';
import fastifyProxy from '@fastify/http-proxy';
import type { Config } from '@/config.js';
import { getNoteSummary } from '@/misc/get-note-summary.js';
import { DI } from '@/di-symbols.js';
@ -39,6 +40,7 @@ const staticAssets = `${_dirname}/../../../assets/`;
const clientAssets = `${_dirname}/../../../../client/assets/`;
const assets = `${_dirname}/../../../../../built/_client_dist_/`;
const swAssets = `${_dirname}/../../../../../built/_sw_dist_/`;
const viteOut = `${_dirname}/../../../../../built/_vite_/`;
@Injectable()
export class ClientServerService {
@ -151,9 +153,6 @@ export class ClientServerService {
},
defaultContext: {
version: this.config.version,
getClientEntry: () => process.env.NODE_ENV === 'production' ?
this.config.clientEntry :
JSON.parse(readFileSync(`${_dirname}/../../../../../built/_client_dist_/manifest.json`, 'utf-8'))['src/init.ts'],
config: this.config,
},
});
@ -164,6 +163,23 @@ export class ClientServerService {
done();
});
//#region vite assets
if (this.config.clientManifestExists) {
fastify.register(fastifyStatic, {
root: viteOut,
prefix: '/vite/',
maxAge: ms('30 days'),
decorateReply: false,
});
} else {
fastify.register(fastifyProxy, {
upstream: 'http://localhost:5173', // TODO: port configuration
prefix: '/vite',
rewritePrefix: '/vite',
});
}
//#endregion
//#region static assets
fastify.register(fastifyStatic, {