¿Es posible (y cómo) agregar algún tipo de archivo "bootstrap" (archivo con efectos secundarios) como un primer archivo que se incluirá en todas las API en Next.js?
El caso de uso original es que tengo winston logger en un archivo que tengo que poner en todos los puntos finales de la API, pero este es un DX bastante pobre. Solo quiero decir "oye, pon este archivo antes de todos los puntos finales, para que sepa (en este caso, el registrador) que todo está configurado".
Gracias
Entonces, encontré la solución en una configuración de paquete web personalizado:
import withPlugins from 'next-compose-plugins'; import { patchWebpackConfig } from 'next-global-css'; import images from 'next-images'; import withTM from 'next-transpile-modules'; import { merge } from 'webpack-merge'; export default withPlugins([ images, withTM([]), ], { swcMinify: true, images: { formats: ['image/avif', 'image/webp'] }, productionBrowserSourceMaps: false, // experimental: { // outputStandalone: true, // }, webpack: (config, { webpack, buildId, isServer, ...options }) => { config.plugins.push( new webpack.DefinePlugin({ 'process.env.BUILD_ID': JSON.stringify(buildId), }), ); if (isServer) { return merge(config, { entry() { return config.entry().then(entry => { // this is the interesting part: prefix entry with a bootstrap file, in my case logger side-effect file Object.keys(entry).map(key => { entry[key] = {import: ['./src/service/bootstrap.ts', ...entry[key]]}; }); return entry; }); } }); } return patchWebpackConfig(config, options); }, reactStrictMode: true, staticPageGenerationTimeout: 15, });