Si guardar un archivo generado en VS Code en tu Mac sigue cambiando su contenido, primero identifica qué formateador se está ejecutando. El ajuste editor.formatOnSave de VS Code aplica formato cuando se guarda un archivo, pero VS Code no proporciona un patrón de rutas integrado que exima a los archivos seleccionados de dicho ajuste. Para un formateador como Prettier, utiliza su propio archivo de exclusión; de lo contrario, desactiva formatear al guardar en un ámbito que se adapte a los archivos que necesitas proteger.

Identifica qué está modificando el archivo

VS Code puede formatear al guardar mediante editor.formatOnSave, y las extensiones de lenguaje pueden proporcionar formateadores. Una Acción de código (Code Action) al guardar, como organizar las importaciones, es un ajuste independiente y también puede alterar el contenido del archivo. La documentación de edición de VS Code describe el formateo al guardar; su guía de Code Actions al guardar cubre las acciones en el momento del guardado.

Para acotar la causa, abre el archivo generado, consulta su modo de lenguaje en la barra de estado y busca en Configuración formatOnSave y codeActionsOnSave. El filtro @modified en Configuración puede ayudar a revelar los valores configurados. Si el archivo cambia a pesar de que el formateo está desactivado, inspecciona las extensiones instaladas y los scripts del proyecto: un generador u otra acción de guardado podrían ser los responsables. Desactivar el formateo no impedirá que una herramienta independiente reescriba el archivo.

Excluye rutas generadas cuando uses Prettier

Si Prettier es el formateador, añade la ruta generada a .prettierignore en la raíz del proyecto. Por ejemplo, para omitir los archivos generados bajo src/generated, utiliza esta entrada:

src/generated/

Prettier documenta .prettierignore como su mecanismo de exclusión de archivos e indica que las integraciones con editores pueden utilizarlo. Sus patrones emplean la sintaxis de Git-ignore. Esta es la opción más específica cuando deseas que el formateo al guardar continúe para otros archivos gestionados por Prettier. Comprueba que el formateador seleccionado para este archivo sea realmente Prettier; otro formateador podría utilizar reglas o controles de exclusión diferentes. Prettier: Ignoring Code

Desactiva el formateo en un ámbito adecuado de VS Code

En Mac, presiona ⇧⌘P y ejecuta Preferences: Open User Settings (JSON) para un cambio global, o Preferences: Open Workspace Settings (JSON) para que solo afecte al proyecto actual. El archivo del espacio de trabajo se almacena en la carpeta .vscode del proyecto. VS Code documenta ambos ámbitos de configuración y sus comandos de Mac en Ajustes de usuario y del espacio de trabajo.

Para dejar de formatear al guardar únicamente en este espacio de trabajo, añade el siguiente ajuste a su objeto JSON existente. Conserva los demás ajustes que ya estén allí y añade una coma donde sea necesario:

{
  "editor.formatOnSave": false
}

Para una excepción que abarque todo un lenguaje, limita el ajuste a ese lenguaje específico. Sustituye typescript por el identificador de lenguaje real del archivo en VS Code, el cual puedes consultar en la barra de estado:

{
  "[typescript]": {
    "editor.formatOnSave": false
  }
}

Esto desactiva el formateo al guardar para cada archivo de ese lenguaje en el ámbito elegido, no solo para las rutas generadas. Los ajustes también pueden ser anulados por ámbitos más específicos; por lo tanto, si el archivo aún cambia, busca @modified e inspecciona tanto los ajustes de usuario como los del espacio de trabajo, además de cualquier bloque específico de lenguaje. La referencia de ajustes de VS Code documenta la precedencia y los ajustes específicos de cada lenguaje.

Comprueba las acciones al guardar por separado

Si el formateo ya está desactivado pero guardar sigue reorganizando las importaciones o aplicando correcciones, busca editor.codeActionsOnSave. Este ajuste controla acciones como organizar importaciones y corregir todo (fix-all). Elimina o cambia únicamente la acción que cause la reescritura; desactivar este ajuste por completo también puede suprimir comportamientos útiles al guardar. La documentación de Code Actions al guardar de VS Code explica los controles compatibles.

No utilices files.exclude como protección contra el formateo: VS Code lo documenta como un ajuste de visibilidad del Explorador, no como un control sobre si un formateador edita un archivo. Si el formateador no dispone de una función de exclusión basada en rutas y solo se ven afectados unos pocos archivos generados, la opción práctica en VS Code es desactivar el formateo al guardar para su lenguaje o espacio de trabajo, y luego formatear los archivos normales manualmente con Format Document (⇧⌥F) cuando sea necesario. VS Code documenta ese comando en Edición básica.

Para los archivos generados que deban permanecer idénticos byte a byte, prioriza el propio mecanismo de exclusión documentado del formateador siempre que esté disponible. De lo contrario, utiliza el ámbito de configuración más restringido posible en VS Code, luego guarda un archivo generado representativo e inspecciona las diferencias (diff) para confirmar qué comportamiento es el responsable.

Fuentes