feat: Frontend app title environment variable (#291)

* Add app name change support

* fix indentation
This commit is contained in:
dncc89 2023-05-18 08:23:13 +09:00 committed by GitHub
parent 782a899ab3
commit 44ea3601c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 75 additions and 57 deletions

View file

@ -1,66 +1,76 @@
import { defineConfig } from 'vite';
import { defineConfig, loadEnv } from 'vite';
import react from '@vitejs/plugin-react';
import path from 'path';
import type { Plugin } from "vite";
// https://vitejs.dev/config/
export default defineConfig({
server: {
host: 'localhost',
port: 3090,
strictPort: false,
proxy: {
'/api': {
target: 'http://localhost:3080',
changeOrigin: true
},
'/auth': {
target: 'http://localhost:3080',
changeOrigin: true
},
'/oauth': {
target: 'http://localhost:3080',
changeOrigin: true
}
}
},
plugins: [react(), sourcemapExclude({excludeNodeModules: true})],
publicDir: './public',
build: {
sourcemap: true,
outDir: './dist',
rollupOptions: {
output: {
manualChunks: id => {
if (id.includes('node_modules')) {
return 'vendor';
}
server: {
host: 'localhost',
port: 3090,
strictPort: false,
proxy: {
'/api': {
target: 'http://localhost:3080',
changeOrigin: true
},
'/auth': {
target: 'http://localhost:3080',
changeOrigin: true
},
'/oauth': {
target: 'http://localhost:3080',
changeOrigin: true
}
}
},
plugins: [react(), sourcemapExclude({ excludeNodeModules: true })],
publicDir: './public',
build: {
sourcemap: true,
outDir: './dist',
rollupOptions: {
output: {
manualChunks: id => {
if (id.includes('node_modules')) {
return 'vendor';
}
}
}
}
},
resolve: {
alias: {
'~': path.join(__dirname, 'src/')
}
}
}
},
resolve: {
alias: {
'~': path.join(__dirname, 'src/')
}
}
});
interface SourcemapExclude {
excludeNodeModules?: boolean;
excludeNodeModules?: boolean;
}
export function sourcemapExclude(opts?: SourcemapExclude): Plugin {
return {
name: "sourcemap-exclude",
transform(code: string, id: string) {
if (opts?.excludeNodeModules && id.includes("node_modules")) {
return {
code,
// https://github.com/rollup/rollup/blob/master/docs/plugin-development/index.md#source-code-transformations
map: { mappings: "" },
};
}
},
};
return {
name: "sourcemap-exclude",
transform(code: string, id: string) {
if (opts?.excludeNodeModules && id.includes("node_modules")) {
return {
code,
// https://github.com/rollup/rollup/blob/master/docs/plugin-development/index.md#source-code-transformations
map: { mappings: "" },
};
}
},
};
}
function htmlPlugin(env: ReturnType<typeof loadEnv>) {
return {
name: "html-transform",
transformIndexHtml: {
enforce: "pre" as const,
transform: (html: string): string =>
html.replace(/%(.*?)%/g, (match, p1) => env[p1] ?? match),
},
};
}