{"id":21301714,"url":"https://github.com/funbox/rebuild-in-progress-webpack-plugin","last_synced_at":"2025-07-26T05:12:53.718Z","repository":{"id":42628850,"uuid":"281100474","full_name":"funbox/rebuild-in-progress-webpack-plugin","owner":"funbox","description":"Creates the file indicator at the beginning of the build and deletes it at the end","archived":false,"fork":false,"pushed_at":"2023-07-19T02:51:43.000Z","size":267,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-07-11T20:41:37.956Z","etag":null,"topics":["webpack","webpack-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funbox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-20T11:41:12.000Z","updated_at":"2023-04-18T21:45:28.000Z","dependencies_parsed_at":"2025-07-11T20:31:21.082Z","dependency_job_id":null,"html_url":"https://github.com/funbox/rebuild-in-progress-webpack-plugin","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/funbox/rebuild-in-progress-webpack-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Frebuild-in-progress-webpack-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Frebuild-in-progress-webpack-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Frebuild-in-progress-webpack-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Frebuild-in-progress-webpack-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funbox","download_url":"https://codeload.github.com/funbox/rebuild-in-progress-webpack-plugin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funbox%2Frebuild-in-progress-webpack-plugin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267122546,"owners_count":24039446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["webpack","webpack-plugin"],"created_at":"2024-11-21T15:50:30.712Z","updated_at":"2025-07-26T05:12:53.652Z","avatar_url":"https://github.com/funbox.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @funboxteam/rebuild-in-progress-webpack-plugin\n\n[![npm](https://img.shields.io/npm/v/@funboxteam/rebuild-in-progress-webpack-plugin.svg)](https://www.npmjs.com/package/@funboxteam/rebuild-in-progress-webpack-plugin)\n\nWebpack plugin that creates the file indicator at the beginning of the build and deletes it at the end.\n\n[По-русски](./README.ru.md)\n\n## Rationale\n\nSometimes external programs have to know the project building state. E.g. it's important to have this knowledge for \ntests running (especially E2E), because testing should be started when the project is completely built.\n\nTo solve this problem **RebuildInProgress** plugin was created. It creates the file `node_modules/.rebuildInProgress` \nwhen webpack starts to build the project and removes it at the end. \n\n## Usage\n\nAdd the plugin in `plugins` array as usual:\n\n```javascript\nconst RebuildInProgressPlugin = require('@funboxteam/rebuild-in-progress-webpack-plugin');\n\nmodule.exports = {\n  plugins: [\n    new RebuildInProgressPlugin()\n  ]\n}\n```\n\nSet the path to the file if the default one isn't suitable:\n\n```javascript\nconst RebuildInProgressPlugin = require('@funboxteam/rebuild-in-progress-webpack-plugin');\nconst rebuildInProgressPath = 'node_modules/.alternativeName';\n\nmodule.exports = {\n  plugins: [\n    new RebuildInProgressPlugin(rebuildInProgressPath)\n  ]\n}\n```\n\n## Build state watching\n\nHere's an example of watching for build state using \n[`fs`]((https://nodejs.org/docs/latest/api/fs.html#fs_fs_watch_filename_options_listener)):\n\n```javascript\nconst fs = require('fs');\nconst rebuildInProgressPath = 'node_modules/.rebuildInProgress';\n\nfs.watch(path.dirname(rebuildInProgressPath), (eventType, filename) =\u003e {\n  if (eventType === 'rename' \u0026\u0026 filename === path.basename(rebuildInProgressPath)) {\n    if (fs.existsSync(rebuildInProgressPath)) {\n      // Build has been started\n    } else {\n      // Build has been completed\n    }\n  }\n});\n```\n\n[![Sponsored by FunBox](https://funbox.ru/badges/sponsored_by_funbox_centered.svg)](https://funbox.ru)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunbox%2Frebuild-in-progress-webpack-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunbox%2Frebuild-in-progress-webpack-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunbox%2Frebuild-in-progress-webpack-plugin/lists"}