stackoverflow, пока не могу найти ответ.
Изначальная задача: делать небольшую обработку содержимого блока <template> в однофайловом компоненте .vue
В частности:
1. Вырезать <!— —> из файла, чтобы можно было, например, заключить в такие комментарии атрибут, который времено не нужно использовать
2. Вырезать перенос строки, если в конце строки есть слеш \ . Удобно, когда нужно добавить или убрать отступ между тегом и текстом.
3. Вырезать строку, если в начале строки есть \\. Удобно комментировать произвольные строки.
Решение казалось бы простое. Мы создаем прокси-функцию для vue-template-compiler
Сделал на примере: https://github.com/vuejs/vue/issues/3934#issuecomment-442163264
Частично отрабатывает. Если создать build, то в папке .nuxt/dist/client все четко. А вот в папке .nuxt/dist/server шаблон без обработки, видимо лоудер не подменяется. Как следствие при загрузке страницы в режиме ssr, в исходном коде страницы шаблон без обработки и уже после загрузки dom дерево пересоздается корректно.
Получается при генерации серверной части кода используется свой конфиг vue-template-compiler? Как его можно переопределить?
Нашел https://nuxtjs.org/api/configuration-render#bundlerenderer -> https://ssr.vuejs.org/api/#renderer-options
Но тут подходящих настроек вроде нет
———
Предполагаю что кто-то скажет, что это плохая затея вмешиваться в компиляцию шаблона. Тогда расскажите как вы комментируете произольные блоки кода в шаблонах? Насколько я понял можно использовать только валидную верстку, вставляя <!— —>. Т.е. нельзя скрыть часть текста внутри открывающего тега (например, какой-нибудь атрибут)
Надеюсь, что решения есть
2 пункт - бредовый. У тебя визуал не должен зависеть от того, есть ли переносы строк в хтмл или нет. То есть ориентир вообще на то, что хтмл будет минифицирован и идти одной строкой
относительно последнего - то да. Нельзя писать комментарии внутри элемента, то есть между открывающей и закрывающей скобкой. А атрибуты добавляются динамически, проблемы не вижу. Зачем пытаться их комментировать не понимаю
Обсуждают сегодня