hand Inicio

Cómo solucionar el caos de las nuevas líneas cuando utilizas distintos sistemas operativos con Prettier

La decisión de Prettier era necesaria, la solución no parece todo lo sencilla que debería ser, pero parece funcionar

Por qué este problema existe?

El origen del problema es de sistemas operativos

Windows genera la combinación CRLF para una nueva línea, mientras que Linux genera sólo la parte LF

  • CR: Carriage Return, \r
  • LF: Line Feed, \n

Pero esto ocurre desde siempre y nunca ha sido un problema

Qué pasaba hasta hace relativamente poco tiempo?

Que podías tener archivos con los dos formatos y nadie se quejaba, no pasaba nada de nada

Hasta que llego Prettier y su versión 2.0.0

En esa versión cambió el valor por defecto de nueva línea de auto a LF

El porqué (así lo explican ellos) es que estos cambios no pasan desapercibidos en git, con lo que vamos creando registros innecesarios cada vez que cambiamos estos carácteres que a nosotros nos importan poco menos que un bledo

La solución? Poner por defecto uno de ellos (que ha sido el LF), y listos

El problema? Que ahora todos nuestros archivos necesitan que manualmente les cambiemos estos carácteres

Cómo cambiar los carácteres?

Tenemos que hacerlo manualmente para cada archivo

Esto es, a cada archivo le cambiamos con el vscode el final de línea de CRLF a LF, para hacerlo tenemos un botón en la barra de estado de abajo

Pero esto mismo no lo podemos hacer para todos los archivos, así que tenemos que ir uno por uno apretando dicho botón

Si no lo hacemos veremos como Prettier nos marcará cada línea con ese error, un desastre

Hay alguna solución global?

Pues podemos seguir los consejos de warlord0blog y añadir o editar los archivos siguientes para git y vscode

.gitattributes

git
 text=lf
*.css linguist-vendored eol=lf
*.scss linguist-vendored eol=lf
*.js linguist-vendored eol=lf
*.php eol=lf
*.twig eol=lf
*.md eol=lf
*.mdx eol=lf
CHANGELOG.md export-ignore

.gitconfig

git
[core]
autocrlf = false

.settings.json de vscode

git
"files.eol": "\n",

A mi me ha ido la mar de bien 😎

draw of me

Hola, tienes en mente desarrollar una web?

Si quieres, te ayudo

Escríbeme