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
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
[core]
autocrlf = false
.settings.json
de vscode
"files.eol": "\n",
A mi me ha ido la mar de bien 😎