From 6db5476987b6bc28f79275f427ea658a8481faff Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sat, 9 Jul 2022 19:48:50 +0900 Subject: [PATCH] vite build1 --- vite.config.ts | 62 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/vite.config.ts b/vite.config.ts index b985188..22c322e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,40 +1,62 @@ -import { defineConfig, UserConfigExport } from 'vite' -import vue from '@vitejs/plugin-vue' -import { resolve } from 'node:path'; -import { map } from 'lodash'; +import { defineConfig, UserConfigExport } from "vite"; +import vue from "@vitejs/plugin-vue"; +import { resolve } from "node:path"; +import { map } from "lodash"; +import { existsSync, readFileSync } from "node:fs"; -type ExportKey = 'ingame'|'ingame_vue'; -type BuildExports = Record>; +type ExportKey = "ingame" | "ingame_vue"; +type BuildExports = Record>; // https://vitejs.dev/config/ export default defineConfig(({ command, mode }) => { - - const target = 'hwe'; //방법이 있나? + const target = "hwe"; //방법이 있나? const tsDir = resolve(__dirname, `${target}/ts/`); const build_exports: BuildExports = require(`${tsDir}/build_exports.json`); - const ingame_vue_ts: Record = {}; - for(const [key, value] of Object.entries(build_exports.ingame_vue)){ - ingame_vue_ts[key] = `${tsDir}/${value}`; + const asset_map: Record = {}; + for (const [key, value] of Object.entries(build_exports.ingame_vue)) { + 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 = { build: { rollupOptions: { - input: ingame_vue_ts, + input: asset_map, }, - outDir: resolve(__dirname, `dist_js/version/ingame_vue`), + outDir: outputPath, + assetsDir: 'assets', + manifest: true, }, resolve: { alias: { - '@': tsDir, - '@scss': resolve(__dirname, `${target}/scss/`), - '@util': resolve(tsDir, `util`), - } + "@": tsDir, + "@scss": resolve(__dirname, `${target}/scss/`), + "@util": resolve(tsDir, `util`), + }, }, - plugins: [vue()] - } + plugins: [vue()], + }; return config; -}) +});