служба отслеживания посылок обнаруживает только первое изменение файла - PullRequest
0 голосов
/ 30 марта 2019

У меня есть следующее в ./js/parcel/build-js.js (это более или менее упрощение того, что делает пример документации *1003* API, за исключением того, что он принимает необязательный аргумент --watch):

#!/usr/bin/env node

const Bundler = require('parcel-bundler');
const path = require('path');

const watch = process.argv.indexOf('--watch') > 0;

if (watch) console.log('Watching files...');

(async function bundleJs() {
  const jsBundler = new Bundler(path.join(__dirname, '../src/common.js'), {
    watch,
    hmr: false,
  });

  jsBundler.on('bundled', () => {
    console.log('bundled!');
  });

  const bundle = await jsBundler.bundle();

  console.log('done');
})();

Когда я запускаю node js/parcel/build-js.js --watch, он обнаруживает первое изменение на src/common.js и печатает:

Watching files...
✨  Built in 585ms.
bundled!
done

Это, как я и ожидал.Когда я редактирую и сохраняю src/common.js, он видит это, и тогда общий результат становится (done удаляется):

Watching files...
✨  Built in 585ms.
bundled!
✨  Built in 86ms.
bundled!

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

Примечание: если я делаю strace node js/parcel/build-js.js --watch, кажется, что он просто сидит на незаконченном epoll_wait(3,, что, я думаю, означает, что он чего-то ждет, но, возможно, смотрит не тот файл ...

Редактировать: Версии!

  • посылка-сборщик: 1.12.3
  • узел: 10.15.1
  • Ubuntu 18.04

Редактировать: используя parcel watch

Для меня это похоже на всю систему.Я сделал yarn globals add parcel (который также установил 1.12.3), и теперь смотрю любой файл JS с parcel watch path/to/file.js делает то же самое.

1 Ответ

0 голосов
/ 30 марта 2019

Оказалось, что это проблема Vim.Из документов Горячая замена модулей :

Некоторые текстовые редакторы и IDE имеют функцию безопасной записи, которая в основном предотвращает потерю данных, беря копию файла и переименовывая его присохранено.

При использовании функции «Горячая перезагрузка модуля» (HMR) эта функция блокирует автоматическое обнаружение обновлений файлов, для отключения безопасной записи используйте параметры, представленные ниже:

Я добавил set backupcopy=yesна мой .vimrc и он начал работать.

Решение для других редакторов также задокументировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...