UNPKG

dinou

Version:

Dinou is a modern React 19 framework with React Server Components, Server Functions, and streaming SSR.

66 lines (61 loc) 1.83 kB
import { TsconfigPathsPlugin } from "@esbuild-plugins/tsconfig-paths"; import reactClientManifestPlugin from "../plugins-esbuild/react-client-manifest-plugin.mjs"; import serverFunctionsPlugin from "../plugins-esbuild/server-functions-plugin.mjs"; import cssProcessorPlugin from "../plugins-esbuild/css-processor-plugin.mjs"; import assetsPlugin from "../plugins-esbuild/assets-plugin.mjs"; import copyStaticFiles from "esbuild-copy-static-files"; import manifestGeneratorPlugin from "../plugins-esbuild/manifest-generator-plugin.mjs"; import writePlugin from "../plugins-esbuild/write-plugin.mjs"; import { existsSync } from "node:fs"; const manifestData = {}; export default function getConfigEsbuildProd({ entryPoints, outdir = "dist3", manifest = {}, }) { let plugins = [ TsconfigPathsPlugin({}), cssProcessorPlugin({ outdir }), reactClientManifestPlugin({ manifest, manifestPath: `${outdir}/react-client-manifest.json`, }), assetsPlugin(), manifestGeneratorPlugin(manifestData), serverFunctionsPlugin(manifestData), writePlugin(), ]; if (existsSync("favicons")) { plugins = [ copyStaticFiles({ src: "favicons", dest: outdir, }), ...plugins, ]; } return { entryPoints, outdir, format: "esm", bundle: true, splitting: true, sourcemap: false, chunkNames: "[name]-[hash]", entryNames: "[name]-[hash]", jsx: "automatic", target: "es2022", write: false, conditions: ["style"], metafile: true, logLevel: "warning", minify: true, external: [ "/__SERVER_FUNCTION_PROXY__", "/serverFunctionProxy.js", "/__hmr_client__.js", "/react-refresh-entry.js", ], plugins, }; }