Может ли Watchify забрать изменения в html-файлах?

Я импортирую HTML-файлы шаблонов в мои компоненты JavaScript, используя https://www.npmjs.com/package/babel-plugin-transform-html-import-to-string.

Когда я использую watchify, он не обновляется, если html был изменен. Изменяется только файл Javascript. Сценарий npm выглядит примерно так:

watchify -p browserify-hmr -t [babelify ext .js .html] src/index.js -o public/bundle.js

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

watch 'npm run browserify' src/ -d --interval=1где скрипт browserifybrowserify -t [babelify ext .js] src/index.js -o public/bundle.js

Кто-нибудь знает, как я могу запустить browserify на изменения файла HTML, не жертвуя быстрой перестройки?

1 ответ

Решение

Проблема в том, что browserify никогда не видит ссылки на .html файлы, поскольку babelify заменяет их переменными и строками HTML.

Если вы хотите посмотреть, чтобы посмотреть .html файлы и перестроить пакет, если они меняются, вы должны разрешить babelify для переноса таких утверждений, как import some from './some.html' в var some = require('./some.html') и должен использовать преобразование на основе браузера (например, stringify) для преобразования необходимого содержимого:

watchify \
  -p browserify-hmr \
  -t [babelify ext .js] \
  -t [stringify ext .html] \
  src/index.js -o public/bundle.js

Browserify / watchify затем увидит .html файлы, входящие в комплект, будут следить за их изменениями.

Другие вопросы по тегам