Плагин для Вебпака, создающий файл-индикатор во время сборки и удаляющий его после неё.
Иногда внешним программам может потребоваться знание о том, в каком состоянии находится сборка проекта. Например, для тестов (особенно приемочных) важно понимать, что Вебпак собрал файлы проекта и можно начинать процесс тестирования.
Для решения этой задачи был создан плагин RebuildInProgress. В начале сборки он создает файл статуса прогресса
node_modules/.rebuildInProgress
, а когда сборка окончена — удаляет его.
Подключение и использование плагина стандартно:
const RebuildInProgressPlugin = require('@funboxteam/rebuild-in-progress-webpack-plugin');
module.exports = {
plugins: [
new RebuildInProgressPlugin()
]
}
Можно передать свой путь до файла, если стандартный не подходит по каким-то причинам:
const RebuildInProgressPlugin = require('@funboxteam/rebuild-in-progress-webpack-plugin');
const rebuildInProgressPath = 'node_modules/.alternativeName';
module.exports = {
plugins: [
new RebuildInProgressPlugin(rebuildInProgressPath)
]
}
Пример того, как можно отслеживать статус сборки с помощью встроенной в Node.js
библиотеки fs
:
const fs = require('fs');
const rebuildInProgressPath = 'node_modules/.rebuildInProgress';
fs.watch(path.dirname(rebuildInProgressPath), (eventType, filename) => {
if (eventType === 'rename' && filename === path.basename(rebuildInProgressPath)) {
if (fs.existsSync(rebuildInProgressPath)) {
// Сборка началась
} else {
// Сборка закончилась
}
}
});