<div dir="ltr"><div>Hello Firefox front-end developers!</div><div><br></div><div>Long before Austin, Brian Grinstead and I did some work on improving the Firefox front-end developer workflow. We started with a lightweight filesystem watcher called |mach watch| to incrementally run |mach build faster|.</div><div><br><div>The first bits of that work landed [1] [2] but there were some issues around purging startup caches [3] [4] that prevented us publicizing it widely. I think I've addressed those issues now, so we're ready for wider usage!</div></div><div><br></div><div>Bare-bones instructions are at<br></div><div><br></div><div><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Incremental_builds_with_filesystem_watching">https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Incremental_builds_with_filesystem_watching</a></div><div><br></div><div><div>Basically, run |mach watch| in one terminal, run |mach run| in
another, and use the Quick Restart hot-key to test your editor changes
quickly.<br></div><div><br></div></div><div>I'm currently working on incorporating |mach watch| into |mach run| and adding a Web Socket server to |mach watch| [5]. That will let us immediately refresh browser CSS in a running browser, and also allow us to reload in-content pages like about: pages. This functionality will mimic the webpack watcher (but does not use any of the same implementation, sadly).</div><div><br></div><div>After that, the sky is the limit: anything you might like to do with a bidirectional communication channel between the build system and development environment, and the browser under development, could be possible.<br></div><div><br></div><div>Thanks to Brian for browser integration, and to Dave Townsend and Myk Melez for helpful conversations; to many in the Firefox front-end team and devtools team for early feedback; and to Greg Szorc for reviewing build system patches.</div><div><br></div><div>Best,</div><div>Nick<br></div><div><br></div><div>[1] <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1384241">https://bugzilla.mozilla.org/show_bug.cgi?id=1384241</a></div><div>[2] <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1385452">https://bugzilla.mozilla.org/show_bug.cgi?id=1385452</a><br></div><div>[3] <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1386040">https://bugzilla.mozilla.org/show_bug.cgi?id=1386040</a></div><div>[4] <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1368699">https://bugzilla.mozilla.org/show_bug.cgi?id=1368699</a></div><div>[5] <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1388899">https://bugzilla.mozilla.org/show_bug.cgi?id=1388899</a><br></div></div>