Files
firefly-iii/resources/assets/v2/vite.config.js
2025-07-20 12:32:53 +02:00

100 lines
2.9 KiB
JavaScript

/*
* vite.config.js
* Copyright (c) 2024 james@firefly-iii.org.
*
* This file is part of Firefly III (https://github.com/firefly-iii).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see https://www.gnu.org/licenses/.
*/
import {defineConfig} from 'vite';
import laravel from 'laravel-vite-plugin';
import manifestSRI from 'vite-plugin-manifest-sri';
import * as fs from "fs";
const host = '127.0.0.1';
function manualChunks(id) {
if (id.includes('node_modules')) {
return 'vendor';
}
}
export default defineConfig(({command, mode, isSsrBuild, isPreview}) => {
let https = null;
if (command === 'serve') {
https = {
key: fs.readFileSync(`/vagrant/tls-certificates/wildcard.sd.internal.key`),
cert: fs.readFileSync(`/vagrant/tls-certificates/wildcard.sd.internal.crt`),
};
}
return {
base: './',
build: {
rollupOptions: {
output: {
manualChunks,
},
}
},
plugins: [
laravel({
input: [
// css
'src/sass/app.scss',
// dashboard
'src/pages/dashboard/dashboard.js',
// accounts
'src/pages/accounts/index.js',
// administrations
'src/pages/administrations/index.js',
'src/pages/administrations/create.js',
'src/pages/administrations/edit.js',
// transactions
'src/pages/transactions/create.js',
'src/pages/transactions/edit.js',
'src/pages/transactions/show.js',
'src/pages/transactions/index.js',
],
publicDirectory: '../../../public',
refresh: true,
}),
//manifestSRI(),
],
server: {
cors: true,
// make sure this IP matches the IP of the dev machine.
origin: 'https://192.168.96.162:5173',
watch: {
usePolling: true,
},
port: 5173,
host: true,
// hmr: {
// protocol: 'wss',
// },
https: https,
},
}
});