#javascript #typescript #npm #build #parceljs
#javascript #typescript #npm #сборка #parceljs
Вопрос:
У меня есть три файла. loader.js
создало бы iframe, который загружается, content.html
который затем загружается content.js
. Я публикую, loader.js
чтобы другие люди могли включить это на свой сайт, а html и js содержимого являются внутренними.
Теперь я хочу добавить хэш содержимого в content.html и content.js таким образом, я могу добавить некоторую конфигурацию агрессивного кэша к этим файлам.
Когда я создаю html с помощью parcel build content.html
, я получаю content.html
и content.<hash>.js
. Есть ли способ content.html
также добавить хэш сборки, а также обновить loader.js
, чтобы включить хэшированный content.html url?
РЕДАКТИРОВАТЬ: я думаю, я обнаружил, что это невозможно — есть открытая проблема https://github.com/parcel-bundler/parcel/issues/4498
Комментарии:
1. Вот пример. github.com/daisy1754/parcel-load-iframe У меня есть три файла, loader.js , content.html и content.js . loader.js это единственный файл, которым я поделился с клиентом. Я хочу получить выходные данные сборки loader.js , content.hash.html и content.hash.js . В настоящее время content.html не хэшируется.
2. ^ @Грег, если ты можешь взглянуть, это было бы здорово
Ответ №1:
Никогда не работал с parcel, но в документации говорится:
Точки входа никогда не хэшируются
Таким образом, ваш content.html
не будет хэширован, потому что это точка входа: parcel build content.html
Комментарии:
1. возможно, мне следует перефразировать вопрос — можем ли мы сделать content.html не точка входа? он загружается через loader.js (с document.createElement(«iframe»)) итак, теоретически loader.js является ли точка входа
2. @Kazuki мне кажется, что нам нужно несколько примеров кода с вашей стороны. Но, возможно, другие люди помогут вам, если они столкнулись с такой же проблемой.
3. вот пример — смотрите мой комментарий выше для деталей github.com/daisy1754/parcel-load-iframe
Ответ №2:
Есть способ добавить это:
- добавьте идентификатор к одному из ресурсов, например, к файлу css
- в javascript извлеките href ссылки
- соберите хэш с помощью регулярного выражения.
- вводите хэш там, где это необходимо.
Пример:
<link id="ui-styling" rel="stylesheet" type="text/css" href="styles/default/style.less">
<script>
var href = document.getElementById("ui-styling").getAttribute("href");
var m = /.([^.] ).css$/.exec(href);
var hash = m[1];
// use or inject hash elsewhere ...
</script>