19 lines
1.3 KiB
JavaScript
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'}}
|
|
}));
|