У меня есть следующее в ./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
делает то же самое.