dpl/frontends/hardnerd/vite.config.mjs

19 lines
1.3 KiB
JavaScript

import {defineConfig} from 'vite';
import vue from '@vitejs/plugin-vue';
import fs from 'node:fs';
import path from 'node:path';
import {fileURLToPath} from 'node:url';
const root=path.dirname(fileURLToPath(import.meta.url));
const backend=path.resolve(root,'../..');
const marker=path.join(backend,'storage/framework/hardnerd-vite.hot');
export default defineConfig(({mode})=>({
root,envDir:false,publicDir:false,base:mode==='production'?'/theme/Hardnerd/assets/':'/',
plugins:[vue(),{name:'hardnerd-local-preview',configureServer(server){
server.httpServer?.once('listening',()=>{fs.mkdirSync(path.dirname(marker),{recursive:true});fs.writeFileSync(marker,'http://127.0.0.1:5175');});
server.httpServer?.once('close',()=>{if(fs.existsSync(marker))fs.unlinkSync(marker);});
}}],
resolve:{dedupe:['vue']},
build:{outDir:path.join(backend,'theme/Hardnerd/assets'),assetsDir:'chunks',manifest:true,emptyOutDir:true,sourcemap:false},
server:{host:'127.0.0.1',port:5175,strictPort:true,origin:'http://127.0.0.1:5175',cors:{origin:/^http:\/\/(127\.0\.0\.1|localhost|hn\.loc)(:\d+)?$/},fs:{allow:[root,path.join(backend,'frontends/node_modules')],deny:['**/.env','**/.env.*','**/.git','**/.git/**','**/.npmrc']},proxy:{'/api':'http://127.0.0.1:8591','/brand':'http://127.0.0.1:8591'}}
}));