vite build1

This commit is contained in:
2022-07-09 19:48:50 +09:00
parent 98a1862ca2
commit 6db5476987
+42 -20
View File
@@ -1,40 +1,62 @@
import { defineConfig, UserConfigExport } from 'vite' import { defineConfig, UserConfigExport } from "vite";
import vue from '@vitejs/plugin-vue' import vue from "@vitejs/plugin-vue";
import { resolve } from 'node:path'; import { resolve } from "node:path";
import { map } from 'lodash'; import { map } from "lodash";
import { existsSync, readFileSync } from "node:fs";
type ExportKey = 'ingame'|'ingame_vue'; type ExportKey = "ingame" | "ingame_vue";
type BuildExports = Record<ExportKey, Record<string,string>>; type BuildExports = Record<ExportKey, Record<string, string>>;
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => { export default defineConfig(({ command, mode }) => {
const target = "hwe"; //방법이 있나?
const target = 'hwe'; //방법이 있나?
const tsDir = resolve(__dirname, `${target}/ts/`); const tsDir = resolve(__dirname, `${target}/ts/`);
const build_exports: BuildExports = require(`${tsDir}/build_exports.json`); const build_exports: BuildExports = require(`${tsDir}/build_exports.json`);
const ingame_vue_ts: Record<string, string> = {}; const asset_map: Record<string, string> = {};
for(const [key, value] of Object.entries(build_exports.ingame_vue)){ for (const [key, value] of Object.entries(build_exports.ingame_vue)) {
ingame_vue_ts[key] = `${tsDir}/${value}`; asset_map[key] = `${tsDir}/${value}`;
} }
for (const [key, value] of Object.entries(build_exports.ingame)) {
asset_map[key] = `${tsDir}/${value}`;
}
const versionGitPath = resolve(
__dirname,
target,
"d_setting",
"VersionGit.json"
);
const versionValue = (() => {
if (!existsSync(versionGitPath)) {
return undefined;
}
const versionInfo = JSON.parse(readFileSync(versionGitPath, "utf-8"));
return versionInfo.versionGit;
})();
const versionTarget = versionValue ?? `${target}_dynamic`;
const outputPath = resolve(__dirname, 'dist_js', versionTarget);
const config: UserConfigExport = { const config: UserConfigExport = {
build: { build: {
rollupOptions: { rollupOptions: {
input: ingame_vue_ts, input: asset_map,
}, },
outDir: resolve(__dirname, `dist_js/version/ingame_vue`), outDir: outputPath,
assetsDir: 'assets',
manifest: true,
}, },
resolve: { resolve: {
alias: { alias: {
'@': tsDir, "@": tsDir,
'@scss': resolve(__dirname, `${target}/scss/`), "@scss": resolve(__dirname, `${target}/scss/`),
'@util': resolve(tsDir, `util`), "@util": resolve(tsDir, `util`),
} },
}, },
plugins: [vue()] plugins: [vue()],
} };
return config; return config;
}) });