98 lines
4.1 KiB
TypeScript
98 lines
4.1 KiB
TypeScript
import { defineConfig, loadEnv } from 'vite';
|
|
import copy from "rollup-plugin-copy";
|
|
import laravel from 'laravel-vite-plugin';
|
|
import path from "path";
|
|
import react from '@vitejs/plugin-react';
|
|
import eslint from 'vite-plugin-eslint';
|
|
import stylelint from "vite-plugin-stylelint";
|
|
|
|
const env = loadEnv("r", process.cwd(), "");
|
|
const debugMode = env["APP_DEBUG"] === "true";
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
laravel({
|
|
input: [
|
|
// BACK
|
|
'resources/ts/back/app.tsx',
|
|
'resources/sass/back/app.scss',
|
|
// FRONT
|
|
'resources/ts/front/app.ts',
|
|
],
|
|
refresh: true,
|
|
}),
|
|
react(),
|
|
debugMode &&
|
|
stylelint({
|
|
dev: false,
|
|
build: true,
|
|
cache: false,
|
|
include: ['**/resources/**/*.scss', '**/resources/**/*.css'],
|
|
exclude: ['node_modules', 'vendor', 'packages'],
|
|
lintOnStart: true,
|
|
emitError: true,
|
|
emitWarning: true,
|
|
emitErrorAsWarning: false,
|
|
emitWarningAsError: true,
|
|
}),
|
|
debugMode &&
|
|
eslint({
|
|
cache: false,
|
|
include: ['resources/ts/**/*.{ts,tsx}'],
|
|
exclude: ['node_modules', 'vendor', 'packages'],
|
|
lintOnStart: false,
|
|
emitWarning: true,
|
|
emitError: true,
|
|
failOnWarning: false,
|
|
failOnError: false,
|
|
}),
|
|
copy({
|
|
targets: [
|
|
{
|
|
src: [
|
|
path.normalize("resources/favicon/android-icon-36x36.png"),
|
|
path.normalize("resources/favicon/android-icon-48x48.png"),
|
|
path.normalize("resources/favicon/android-icon-72x72.png"),
|
|
path.normalize("resources/favicon/android-icon-96x96.png"),
|
|
path.normalize("resources/favicon/android-icon-144x144.png"),
|
|
path.normalize("resources/favicon/android-icon-192x192.png"),
|
|
path.normalize("resources/favicon/apple-icon-57x57.png"),
|
|
path.normalize("resources/favicon/apple-icon-60x60.png"),
|
|
path.normalize("resources/favicon/apple-icon-72x72.png"),
|
|
path.normalize("resources/favicon/apple-icon-76x76.png"),
|
|
path.normalize("resources/favicon/apple-icon-114x114.png"),
|
|
path.normalize("resources/favicon/apple-icon-120x120.png"),
|
|
path.normalize("resources/favicon/apple-icon-144x144.png"),
|
|
path.normalize("resources/favicon/apple-icon-152x152.png"),
|
|
path.normalize("resources/favicon/apple-icon-180x180.png"),
|
|
path.normalize("resources/favicon/browserconfig.xml"),
|
|
path.normalize("resources/favicon/favicon-16x16.png"),
|
|
path.normalize("resources/favicon/favicon-32x32.png"),
|
|
path.normalize("resources/favicon/favicon-96x96.png"),
|
|
path.normalize("resources/favicon/favicon.ico"),
|
|
path.normalize("resources/favicon/manifest.json"),
|
|
path.normalize("resources/favicon/ms-icon-70x70.png"),
|
|
path.normalize("resources/favicon/ms-icon-144x144.png"),
|
|
path.normalize("resources/favicon/ms-icon-150x150.png"),
|
|
path.normalize("resources/favicon/ms-icon-310x310.png"),
|
|
],
|
|
dest: path.normalize("public")
|
|
},
|
|
],
|
|
copyOnce: true,
|
|
verbose: true
|
|
}),
|
|
],
|
|
resolve: {
|
|
alias: [
|
|
{
|
|
find: "&",
|
|
replacement: "/resources/assets",
|
|
},
|
|
{
|
|
find: "@",
|
|
replacement: "/resources/ts",
|
|
},
|
|
],
|
|
},
|
|
});
|