Digamos que tenemos una línea de código:
const a = 'a'; const b = 'b';y no nos gustaría que fuera formateado por Prettier.
Lo que he probado hasta ahora:
1)
// prettier-ignore const a = 'a'; const b = 'b'; // prettier-ignore-start const a = 'a'; const b = 'b'; // prettier-ignore-endEn ambos casos se transforma en:
const a = 'a'; const b = 'b';Entonces, ¿cómo ignorar un bloque de código?
La razón por la que // prettier-ignore no funciona aquí es que // prettier-ignore excluirá el siguiente nodo del árbol de sintaxis abstracta del formato (consulte https://prettier.io/docs/en/ignore.html ).
En su caso, el siguiente nodo solo sería const a = 'a'; . Por ejemplo,
// prettier-ignore const a = 'a';se conservaría después del formateo.
Si desea mantener ambas asignaciones en una línea sin cambiar la configuración más bonita para todo su archivo, puede usar la asignación de desestructuración si está usando es6 o node:
const [a, b] = ["a", "b"];A veces, varias declaraciones se pueden envolver en un bloque con // prettier-ignore delante:
// prettier-ignore { abcRouter('/api/abc', server); xRouter ('/api/x', server); } Por supuesto, eso no tiene sentido para las declaraciones const a nivel de bloque, pero usted escribió que ese no era su código real y solo un ejemplo. Esa es una solución que funciona en algunos pero no en todos los casos. En general, la estrategia es envolver varias cosas en una cosa que puede ser prettier-ignore d.
Otra opción es mover todo el código que no desea formatear (por ejemplo, porque se genera) a un archivo separado excluido por .prettierignore .
prettier-ignore-start y prettier-ignore-end solo se admiten en Markdown .
Puedes ignorar todo el método.
// prettier-ignore function myFunc() { const a = 'a'; const b = 'b'; return a + b; }En realidad, probé solo en mecanografiado. Pero creo que también debería funcionar en JS.
Puede ignorar un bloque de código que no es compatible en este momento, su opción es usar solo // prettier-ignore
ejemplo a continuación:
// prettier-ignore const a = 'a'; const b = 'b'; // prettier-ignore function xyz() { console.log({a, b}) }problema conocido -> https://github.com/prettier/prettier/issues/5287
Documentos -> https://prettier.io/docs/en/ignore.html#javascript
Apesta, pero esto no es compatible actualmente.
Si bien esto no funciona para el ejemplo de OP, una opción es agregar el comentario prettier-ignore al comienzo de cada línea que se ignorará, usando el estilo de comentario /* */ , p.
/* prettier-ignore */ import { SomeTypeA, SomeTypeB, SomeTypeC } from './some-long-folder-name/super-long-import'; /* prettier-ignore */ import { someFnA, someFnB, someFnC, } from './another-long-folder-name/super-long-import';En mi opinión, esto es más agradable a la vista que las alternativas;
Dejando más bonito reformatear las importaciones:
import { SomeTypeA, SomeTypeB, SomeTypeC, } from './some-long-folder-name/super-long-import'; import { someFnA, someFnB, someFnC, } from './another-long-folder-name/super-long-import'; Especificando el // prettier-ignore encima de cada importación:
// prettier-ignore import { SomeTypeA, SomeTypeB, SomeTypeC } from './some-long-folder-name/super-long-import'; // prettier-ignore import { someFnA, someFnB, someFnC, } from './another-long-folder-name/super-long-import';