One Config File To Rule Them All

This ad is not shown to multipass and full ticket holders
JS Nation
JSNation 2026
June 11 - 15, 2026
Amsterdam & Online
The main JavaScript conference of the year
Upcoming event
JSNation 2026
JSNation 2026
June 11 - 15, 2026. Amsterdam & Online
Learn more
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Node.js introduce --experimental-config-file, una nueva bandera experimental que permite cargar un archivo node.config.json al inicio. Aunque agrega otro archivo de configuración, esta poderosa adición finalmente permite a los desarrolladores personalizar la ejecución de Node.js de maneras que antes eran imposibles. Esta charla explora las capacidades desbloqueadas por esta característica, incluyendo un comportamiento de tiempo de ejecución afinado, mejor portabilidad y posibles extensiones futuras.

This talk has been presented at Node Congress 2026, check out the latest edition of this JavaScript Conference.

Marco Ippolito
Marco Ippolito
19 min
26 Mar, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Marco Ippolito discute las complejidades de configurar características de NodeJS y la necesidad de un archivo de configuración centralizado. Explica los desafíos de gestionar múltiples banderas para diferentes características y demuestra cómo mejorar la experiencia del desarrollador utilizando banderas específicas para abordar la integración de TypeScript y los procedimientos de prueba. El texto discute los desafíos de gestionar múltiples banderas de configuración en NodeJS e introduce el concepto de usar node options como una alternativa a pasar numerosas banderas directamente después del comando node. Node options proporciona una solución para gestionar banderas de configuración en NodeJS, simplificando la estructura del comando y permitiendo el uso de .mfile para configuraciones. Envié un PR para introducir la característica experimental de archivo de configuración en Node.js, incluyendo dos banderas principales: experimental default config file y experimental config file, permitiendo la personalización de configuraciones a través de archivos JSON con esquemas coincidentes en versión para soporte de IDE y autocompletado. Las banderas V8 en Node.js proporcionan opciones de personalización, con una jerarquía de prioridad entre CLI, Node options y archivos de configuración, excluyendo banderas no operativas. Node 25 introduce nuevos espacios de nombres para la configuración de pruebas, ajustes de vigilancia y permisos, simplificando el proceso de configuración y mejorando la experiencia del desarrollador. La configuración JSON de Node.js ofrece conveniencia con un analizador JSON incorporado y planes para más espacios de nombres y texto explicativo en el esquema JSON para simplificar la gestión de configuraciones.
Available in English: One Config File To Rule Them All

1. Understanding NodeJS Configuration Challenges

Short description:

Marco Ippolito discute las complejidades de configurar características de NodeJS y la necesidad de un archivo de configuración centralizado. Explica los desafíos de gestionar múltiples flags para diferentes características y demuestra cómo mejorar la experiencia del desarrollador utilizando flags específicos para abordar la integración de TypeScript y los procedimientos de prueba.

Bienvenidos a todos. Mi nombre es Marco Ippolito, y hoy hablaré sobre un archivo de configuración para gobernarlos a todos. Entonces, ¿quién soy? Soy un Ingeniero de Seguridad Senior en Herodevs, y soy miembro del Comité de Dirección Técnica de NodeJS y un liberador. Entonces, NodeJS en los últimos años ha lanzado muchas características muy interesantes. Por ejemplo, el test runner, el modo watch, cosas que anteriormente necesitabas descargar de NPM, el soporte nativo de TypeScript es también otro grande en el que trabajé personalmente. Tenemos cobertura de pruebas y finalmente un modelo de permisos para mejorar la seguridad de ejecutar aplicaciones NodeJS.

Entonces, lo que todas estas características tienen en común es que todas requieren algún tipo de configuración. Por ejemplo, si quieres configurar el test runner, necesitas pasar muchos flags, y lo mismo se aplica para la mayoría de las características de NodeJS de las que hablamos. Hay algunos flags para watch, algunos flags para el modelo de permisos, algunos flags para la cobertura, otros flags para el tracing. Son muchos flags. Honestamente, ni siquiera conozco todos estos flags. Necesito ir a revisar la documentación, pero son muchos. Entonces, obviamente el problema con eso es que muchos flags se vuelve muy difícil conocerlos todos.

Comencemos con un caso de uso simple, y te mostraré cómo podemos mejorar la experiencia del desarrollador. Entonces, tomemos un flag llamado experimental transform types. Si has estado siguiendo la integración de TypeScript en NodeJS, sabes que NodeJS no soporta toda la sintaxis de TypeScript. Para habilitar este soporte al 100%, necesitas pasar este flag experimental transform types. Entonces, en este caso, podemos ejecutar enums. Tenemos el color rojo, y creamos un archivo.ts, y lo ejecutamos. Entonces, pasamos Node – experimental transform types, y funciona. Imprime rojo e imprime una advertencia experimental. Entonces, ¿cómo eliminamos la advertencia experimental? Podemos pasar otro flag. Este flag es disable experimental warning. Y, boom, tenemos rojo sin la advertencia. Entonces, agreguemos algunas pruebas. Para imaginar cómo está creciendo nuestra aplicación, queremos ejecutar algunas pruebas. Necesitamos pasar el flag – test, y luego ejecutará un conjunto de pruebas. ¿Verdad? Porque todos sabemos que la prueba es una de las primeras cosas que necesitamos agregar cuando creamos nuestra aplicación. Tal vez agreguemos algo de cobertura. ¿De acuerdo? Entonces, necesitamos pasar experimental test coverage, y luego configuramos la cobertura de prueba con el número de líneas que queremos tener al 100%.

2. Solving NodeJS Configuration Complexity

Short description:

El texto discute los desafíos de gestionar múltiples flags de configuración en NodeJS e introduce el concepto de usar node options como una alternativa a pasar numerosos flags directamente después del comando node.

Y, boom, tenemos esta tabla aquí con la cobertura de prueba. ¿Qué más podemos hacer? Podemos hacer modo watch. Entonces, si en el pasado usabas Nodemon para recarga en caliente, ahora puedes usar –watch. Y si cambiamos algo, la aplicación comenzará. Entonces, este eres tú ahora, porque tienes tantos flags que es muy difícil de leer.

Déjame regresar por un segundo. Como, tenemos uno, dos, tres, cuatro, cinco, seis flags. Ahora, imagina todos estos flags dentro de tu package JSON. Sería muy ancho. Entonces, necesitas desplazarte horizontalmente para verlos todos. Y esto no es genial. Podemos hacerlo mejor, ¿de acuerdo?

Entonces, si ejecutamos – si revisamos el manual de node, entonces ejecutamos man node, veremos una gran lista de cosas que no nos importan. Pero si miramos la última, podemos ver que hay una variable de entorno que la aplicación Node.js leerá. Y se llama node options. Entonces, node options es otra forma de pasar a la aplicación Node.js todos esos flags de configuración. No todos los flags son compatibles. Está documentado cuáles no son compatibles, pero la mayoría sí lo son.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
No REST para Cap'n Web
Node Congress 2026Node Congress 2026
23 min
No REST para Cap'n Web
Top Content
Kenton Varda advocates for using CapnWeb, an RPC protocol, over REST for web APIs, emphasizing benefits for humans and AI agents. CapnWeb simplifies client-server communications by treating them as function calls. TypeScript type checking ensures method accuracy in CapnWeb across JavaScript runtimes. Stubs in CapnWeb allow method calls to execute on remote objects and simulate all possible method names for remote calls. Converting REST APIs to CapnWeb streamlines code and improves API calls. CapnWeb enhances API functionality with object-specific RPC sessions and promises pipelining for multilevel API optimization. AI agent security challenges are addressed with sandboxing and token protection in CapnWeb. CapnWeb capabilities for AI agents include passing restricted CapnWeb stubs and exploring capability-based security with CapnProto.
Rome, ¡una cadena de herramientas moderna!
JSNation 2023JSNation 2023
31 min
Rome, ¡una cadena de herramientas moderna!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Conquistando la Complejidad: Refactorización de Proyectos JavaScript
JSNation 2024JSNation 2024
21 min
Conquistando la Complejidad: Refactorización de Proyectos JavaScript
Top Content
Today's Talk explores the complexity in code and its impact. It discusses different methods of measuring complexity, such as cyclomatic complexity and cognitive complexity. The importance of understanding and conquering complexity is emphasized, with a demo showcasing complexity in a codebase. The Talk also delves into the need for change and the role of refactoring in dealing with complexity. Tips and techniques for refactoring are shared, including the use of language features and tools to simplify code. Overall, the Talk provides insights into managing and reducing complexity in software development.
Mejorando la Felicidad del Desarrollador con IA
React Summit 2023React Summit 2023
29 min
Mejorando la Felicidad del Desarrollador con IA
GitHub Copilot is an auto-completion tool that provides suggestions based on context. Research has shown that developers using Copilot feel less frustrated, spend less time searching externally, and experience less mental effort on repetitive tasks. Copilot can generate code for various tasks, including adding modals, testing, and refactoring. It is a useful tool for improving productivity and saving time, especially for junior developers and those working in unfamiliar domains. Security concerns have been addressed with optional data sharing and different versions for individuals and businesses.
Automatiza el Navegador con la API de Renderizado del Navegador de Workers
JSNation 2024JSNation 2024
20 min
Automatiza el Navegador con la API de Renderizado del Navegador de Workers
The Talk discusses browser automation using the Worker's Browser Rendering API, which allows tasks like navigating websites, taking screenshots, and creating PDFs. Cloudflare integrated Puppeteer with their workers to automate browser tasks, and their browser rendering API combines remote browser isolation with Puppeteer. Use cases for the API include taking screenshots, generating PDFs, automating web applications, and gathering performance metrics. The Talk also covers extending sessions and performance metrics using Durable Objects. Thank you for attending!

Workshops on related topic

Pragmática 101 sobre Herramientas JS Personalizadas para tu Proyecto
JSNation US 2025JSNation US 2025
122 min
Pragmática 101 sobre Herramientas JS Personalizadas para tu Proyecto
Featured Workshop
Will Klein
Will Klein
Vamos a desmitificar los secretos de las herramientas modernas de JavaScript. En este masterclass, aprenderás cómo funcionan los linters, compiladores y transformaciones de código. Darás tus primeros pasos construyendo tus propias herramientas de desarrollo, escribiendo una regla de ESLint, un plugin de compilador y una transformación de código. Aprende estas habilidades para ayudar a tu equipo y profundizar tu comprensión de los lenguajes de computadora.Plan del Masterclass:Una vista previa de cómo se pueden usar los ASTsUn breve recorrido de cómo funcionan los compiladoresUna introducción a trabajar con un ASTEl secreto para hacer miles de cambios en segundosCómo aplicar esta habilidad
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
JSNation 2023JSNation 2023
44 min
Soluciona el 100% de tus errores: Cómo encontrar problemas más rápido con la Reproducción de Sesiones
WorkshopFree
Ryan Albrecht
Ryan Albrecht
¿Conoces ese molesto error? ¿El que no aparece localmente? Y no importa cuántas veces intentes recrear el entorno, no puedes reproducirlo. Has revisado las migas de pan, leído la traza de pila y ahora estás jugando al detective para unir los tickets de soporte y asegurarte de que sea real.
Únete al desarrollador de Sentry, Ryan Albrecht, en esta charla para aprender cómo los desarrolladores pueden utilizar la Reproducción de Sesiones, una herramienta que proporciona reproducciones de video de las interacciones de los usuarios, para identificar, reproducir y resolver errores y problemas de rendimiento más rápido (sin golpear tu cabeza contra el teclado).