Как отключить слеш в конце одиночных тегов?

Как отключить слеш в конце одиночных тегов html, при форматировании кода, Prettier - Code formatte? Выделено красным прямоугольником!


Ответы (1 шт):

Автор решения: Daniil Loban

Для решения этого вопроса, если это нужно для пет-проекта можно применить небольшой патч.Как вариант, если не нравится патч, можно сделать билд версии (для своих нужд)

Для патча:

Найти в файле node_modules/prettier/index.js такую строку if (node.isSelfClosing) и заменить return "/>"; на return ">";

Это решение основано на исследовании исходников версии 2.9.0 а проверено на версии ^2.8.1

Для билда:

prettier/src/language-html/print/tag.js

function printClosingTagEndMarker(node, options) {
  if (shouldNotPrintClosingTag(node, options)) {
    return "";
  }
  switch (node.type) {
    case "ieConditionalComment":
    case "ieConditionalEndComment":
      return "[endif]-->";
    case "ieConditionalStartComment":
      return "]><!-->";
    case "interpolation":
      return "}}";
    case "element":
      if (node.isSelfClosing) {
        return "/>";  <--------------------- править тут
      }
    // fall through
    default:
      return ">";
  }
}

Это не самый лучший вариант, во фремворках нужны само-закрывающиеся теги, но это потребует больше правок в исходниках.

→ Ссылка