- Turbopack activé (dev: next dev --turbopack) - NOTE_LIST_SELECT: exclut embedding (~6KB/note) des requêtes de liste - getAllNotes/getNotes/getArchivedNotes/getNotesWithReminders optimisés - searchNotes: filtrage DB-side au lieu de full-scan JS en mémoire - getAllNotes: requêtes ownNotes + sharedNotes parallélisées avec Promise.all - syncLabels: upsert en transaction () vs N boucles séquentielles - app/(main)/page.tsx converti en Server Component (RSC) - HomeClient: composant client hydraté avec données pré-chargées - NoteEditor/BatchOrganizationDialog/AutoLabelSuggestionDialog: lazy-loaded avec dynamic() - MasonryGrid: remplace Muuri par CSS grid auto-fill + @dnd-kit/sortable - 13 packages supprimés: muuri, web-animations-js, react-masonry-css, react-grid-layout - next.config.ts nettoyé: suppression webpack override, activation image optimization
27 lines
584 B
TypeScript
27 lines
584 B
TypeScript
import type { NextConfig } from "next";
|
|
|
|
const withPWA = require("@ducanh2912/next-pwa").default({
|
|
dest: "public",
|
|
register: true,
|
|
skipWaiting: true,
|
|
disable: process.env.NODE_ENV === "development",
|
|
});
|
|
|
|
const nextConfig: NextConfig = {
|
|
// Enable standalone output for Docker
|
|
output: 'standalone',
|
|
|
|
// Optimize for production
|
|
reactStrictMode: true,
|
|
|
|
// Image optimization (enabled for better performance)
|
|
images: {
|
|
formats: ['image/avif', 'image/webp'],
|
|
},
|
|
|
|
// Hide the "compiling" indicator
|
|
devIndicators: false,
|
|
};
|
|
|
|
export default withPWA(nextConfig);
|