Подсветка синтаксиса Highlight.js не работает после сборки веб-пакета
Перед использованием webpack
этот код работал внутри функции и запускается после загрузки содержимого:
$('pre code').each(function(i, block) {
console.log("ta da!");
hljs.highlightBlock(block);
});
console.log
сообщение появляется, но выделение не происходит.
Нет ошибок сборки или консоли.
Версия Highlight.js
https://github.com/isagalaev/highlight.js/blob/master/src/highlight.js
Тема Highlight.js:
https://highlightjs.org/static/demo/styles/hybrid.css
Версия Webpack
"webpack": "^ 4.8.3"
my_entry_file.js
import '../css/hybrid.css';
import hljs from './highlight';
Сравнение HTML ниже:
Оригинальный HTML:
<pre>
<code class="javascript">// here is a comment
На производственном сайте (без использования веб-пакета):
<pre>
<code class="javascript hljs">
<span class="hljs-comment">
// here is a comment
</span>
<span class="hljs-keyword">var</span>.... etc
На сайте разработчика (с помощью веб-пакета):
<pre>
<code class="javascript hljs">// here is a comment
1 ответ
Я выяснил ответ во время публикации, но думаю, что решение может быть полезным для кого-то.
Единственная аномалия между рабочими и разработчиками - это то, что в первом я использовал минимизированный файл по адресу:
https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js
пока сайт разработчика (используя веб-пакет) использовал:
https://github.com/isagalaev/highlight.js/blob/master/src/highlight.js
Поэтому я переключился обратно на минимизированную версию, и подсветка синтаксиса сработала.
Я не знаю, почему это происходит, хотя.