push rasad front on new repo
This commit is contained in:
148
vite.config.js
Normal file
148
vite.config.js
Normal file
@@ -0,0 +1,148 @@
|
||||
import { defineConfig, transformWithEsbuild } from "vite";
|
||||
import react from "@vitejs/plugin-react";
|
||||
import { VitePWA } from "vite-plugin-pwa";
|
||||
import path from "path";
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
{
|
||||
name: "load-js-files-as-jsx",
|
||||
enforce: "pre",
|
||||
async transform(code, id) {
|
||||
if (!id.match(/src\/.*\.js$/)) return null;
|
||||
return transformWithEsbuild(code, id, {
|
||||
loader: "jsx",
|
||||
jsx: "automatic",
|
||||
});
|
||||
},
|
||||
},
|
||||
react({
|
||||
fastRefresh: true,
|
||||
include: /\.js$/,
|
||||
jsxRuntime: "automatic",
|
||||
}),
|
||||
VitePWA({
|
||||
registerType: "autoUpdate",
|
||||
includeAssets: [
|
||||
"favicon.ico",
|
||||
"android-chrome-192x192.png",
|
||||
"android-chrome-512x512.png",
|
||||
"apple-touch-icon.png",
|
||||
"logo192.png",
|
||||
"logo512.png",
|
||||
],
|
||||
manifest: {
|
||||
short_name: "سامانه رصدیار",
|
||||
name: "سامانه رصدیار",
|
||||
icons: [
|
||||
{
|
||||
src: "/android-chrome-192x192.png",
|
||||
sizes: "192x192",
|
||||
type: "image/png",
|
||||
},
|
||||
{
|
||||
src: "/android-chrome-512x512.png",
|
||||
sizes: "512x512",
|
||||
type: "image/png",
|
||||
},
|
||||
],
|
||||
start_url: ".",
|
||||
display: "standalone",
|
||||
theme_color: "#000000",
|
||||
background_color: "#ffffff",
|
||||
},
|
||||
workbox: {
|
||||
globPatterns: [
|
||||
"**/*.{js,css,html,ico,png,svg,jpg,jpeg,webp,woff,woff2}",
|
||||
],
|
||||
runtimeCaching: [
|
||||
{
|
||||
urlPattern: /^https:\/\/.*\.(?:png|jpg|jpeg|svg|gif|webp)$/,
|
||||
handler: "CacheFirst",
|
||||
options: {
|
||||
cacheName: "images-cache",
|
||||
expiration: {
|
||||
maxEntries: 100,
|
||||
maxAgeSeconds: 60 * 60 * 24 * 30,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
],
|
||||
|
||||
preview: {
|
||||
allowedHosts: ["rasadyar.com", "rasadyar.net", "rasadyar.ir", "dev.rasadyar.com"],
|
||||
},
|
||||
|
||||
// Resolve configuration
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": path.resolve(__dirname, "./src"),
|
||||
},
|
||||
},
|
||||
|
||||
server: {
|
||||
port: 3000,
|
||||
open: true,
|
||||
host: true,
|
||||
hmr: {
|
||||
overlay: true,
|
||||
},
|
||||
watch: {
|
||||
usePolling: false,
|
||||
interval: 100,
|
||||
},
|
||||
},
|
||||
|
||||
build: {
|
||||
outDir: "build",
|
||||
sourcemap: false,
|
||||
|
||||
chunkSizeWarningLimit: 1000,
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: {
|
||||
"react-vendor": ["react", "react-dom", "react-router-dom"],
|
||||
"mui-vendor": [
|
||||
"@mui/material",
|
||||
"@mui/icons-material",
|
||||
"@mui/lab",
|
||||
"@emotion/react",
|
||||
"@emotion/styled",
|
||||
],
|
||||
"redux-vendor": ["@reduxjs/toolkit", "react-redux", "redux-persist"],
|
||||
"chart-vendor": [
|
||||
"chart.js",
|
||||
"react-chartjs-2",
|
||||
"echarts",
|
||||
"echarts-for-react",
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
optimizeDeps: {
|
||||
include: [
|
||||
"react",
|
||||
"react-dom",
|
||||
"react-router-dom",
|
||||
"@mui/material",
|
||||
"@mui/icons-material",
|
||||
"@reduxjs/toolkit",
|
||||
"react-redux",
|
||||
],
|
||||
esbuildOptions: {
|
||||
loader: {
|
||||
".js": "jsx",
|
||||
},
|
||||
jsx: "automatic",
|
||||
},
|
||||
},
|
||||
|
||||
define: {
|
||||
"process.env": {},
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user