这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

69 lines
2.2 KiB

// react-query
import { QueryCache, QueryClient, QueryClientProvider } from "@tanstack/react-query";
// vercel analytics
import { Analytics } from "@vercel/analytics/react";
// react
import { Suspense } from "react";
import ReactDOM from "react-dom/client";
// helmet
import { HelmetProvider } from "react-helmet-async";
//
import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
import "virtual:svg-icons-register";
// mock api
import worker from "./_mock";
// i18n
import "./locales/i18n";
// css
import "./global.css";
import "./theme/theme.css";
import { toast } from "sonner";
// root component
import App from "./App";
const charAt = `
███████╗██╗ █████╗ ███████╗██╗ ██╗
██╔════╝██║ ██╔══██╗██╔════╝██║ ██║
███████╗██║ ███████║███████╗███████║
╚════██║██║ ██╔══██║╚════██║██╔══██║
███████║███████╗██║ ██║███████║██║ ██║
╚══════╝╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
`;
console.info(`%c${charAt}`, "color: #5BE49B");
const queryClient = new QueryClient({
defaultOptions: {
queries: {
retry: 3,
gcTime: 300_000,
staleTime: 10_1000,
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
},
},
//https://tkdodo.eu/blog/breaking-react-querys-api-on-purpose
queryCache: new QueryCache({
onError: (error) => toast.error(`Something went wrong: ${error.message}`),
}),
});
const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement);
root.render(
<HelmetProvider>
<QueryClientProvider client={queryClient}>
<ReactQueryDevtools initialIsOpen={false} />
<Suspense>
<Analytics />
<App />
</Suspense>
</QueryClientProvider>
</HelmetProvider>,
);
// 🥵 start service worker mock in development mode
// worker.start({ onUnhandledRequest: "bypass" });