Add support for new BUILD_PATH advanced configuration variable#8986
Conversation
BUILD_PATH advanced configuration variable
BUILD_PATH advanced configuration variable|
This pull request has been automatically marked as stale because it has not had any recent activity. It will be closed in 5 days if no further activity occurs. |
|
Bump. I'd love to get some feedback on this. |
|
Merge this one pls |
|
I really need this; I am the buildmaster of a project which assembles java, python, javascript, groovy and C#. All the other languages took me less than a day to make a perfect overlayfs + symlink build cache. javascript has been four days and counting, and I still don't have a solution (can't move build/ location, can't symlink things into place, can't use mount --bind.... it's a real mess). Please, please... conventions are not really conventions unless they are configurable. |
|
I'd love it |
|
This pull request has been automatically marked as stale because it has not had any recent activity. It will be closed in 5 days if no further activity occurs. |
|
Bump. I'd still love to get some feedback on this. |
|
Want to give my vote of support to this too. Would be much more convenient than having to use pre/post-build scripts to shuffle folders around when I have other software in the project using the "build" folder. |
|
This pull request has been automatically marked as stale because it has not had any recent activity. It will be closed in 5 days if no further activity occurs. |
|
Bump. A lot of people have been waiting on this one. |
9c29160 to
32f8ce5
Compare
|
As mentioned in #3824 (comment) you are assuming that the |
|
This is incredibly annoying. Now I need to filter out all the Gradle build artifacts that go in this folder, or override project conventions for this one little piece that used |
* Fix noFallthroughCasesInSwitch/jsx object is not extensible (react#9921) Co-authored-by: Konstantin Simeonov <[email protected]> * Add logo license to README * Remove trailing space in reportWebVitals.ts (react#10040) * docs: add React Testing Library as a library requiring jsdom (react#10052) Co-authored-by: Ian Schmitz <[email protected]> * Increase Workbox's maximumFileSizeToCacheInBytes (react#10048) * Create FUNDING.yml * replace inquirer with prompts (react#10083) - remove `react-dev-utils/inquirer` public import * Prepare 4.0.1 release * Prepare 4.0.1 release * Publish - [email protected] - [email protected] - [email protected] - [email protected] - [email protected] * chore: bump web-vital dependency version (react#10143) * chore: bump typescript version (react#10141) Co-authored-by: Ian Schmitz <[email protected]> * Add TypeScript 4.x as peerDependency to react-scripts(react#9964) * remove chalk from formatWebpackMessages (react#10198) * Upgrade @svgr/webpack to fix build error (react#10213) Co-authored-by: Ian Schmitz <[email protected]> * Improve vendor chunk names in development (react#9569) * Update postcss packages (react#10003) Co-authored-by: Ian Schmitz <[email protected]> * Recovered some integration tests (react#10091) * Upgrade sass-loader (react#9988) * Move ESLint cache file into node_modules (react#9977) Co-authored-by: Ian Schmitz <[email protected]> * Revert "Update postcss packages" (react#10216) This reverts commit 580ed5d. * Remove references to Node 8 (react#10214) * fix(react-scripts): add missing peer dependency react and update react-refresh-webpack-plugin (react#9872) * Update using-the-public-folder.md (react#10314) Some library --> Some libraries * docs: add missing override options for Jest config (react#9473) * Fix CI tests (react#10217) * appTsConfig immutability handling by immer (react#10027) Co-authored-by: mad-jose <[email protected]> * Add support for new BUILD_PATH advanced configuration variable (react#8986) * Add opt-out for eslint-webpack-plugin (react#10170) * Prepare 4.0.2 release * Publish - [email protected] - [email protected] - [email protected] - [email protected] - [email protected] - [email protected] * tests: update test case to match the description (react#10384) * Bump webpack-dev-server 3.11.0 -> 3.11.1 (react#10312) Resolves react#10084 security vulnerability in websocket-driver library version 0.5.6, imported transitively by sockjs * Upgrade eslint-webpack-plugin to fix opt-out flag (react#10590) * update immer to 8.0.1 to address vulnerability (react#10412) Resolves react#10411 Bumps immer version to 8.0.1 to address the prototype pollution vulnerability with the current 7.0.9 version. * Prepare 4.0.3 release * Update CHANGELOG * Publish - [email protected] - [email protected] - [email protected] Co-authored-by: Ryota Murakami <[email protected]> Co-authored-by: Konstantin Simeonov <[email protected]> Co-authored-by: Ian Sutherland <[email protected]> Co-authored-by: sho90 <[email protected]> Co-authored-by: Anyul Rivas <[email protected]> Co-authored-by: Ian Schmitz <[email protected]> Co-authored-by: Jeffrey Posnick <[email protected]> Co-authored-by: Evan Bacon <[email protected]> Co-authored-by: Sahil Purav <[email protected]> Co-authored-by: Hakjoon Sim <[email protected]> Co-authored-by: Chris Shepherd <[email protected]> Co-authored-by: Jason Williams <[email protected]> Co-authored-by: Jabran Rafique⚡️ <[email protected]> Co-authored-by: John Ruble <[email protected]> Co-authored-by: Morten N.O. Nørgaard Henriksen <[email protected]> Co-authored-by: Sergey Makarov <[email protected]> Co-authored-by: EhsanKhaki <[email protected]> Co-authored-by: Kristoffer K <[email protected]> Co-authored-by: Aviv Hadar <[email protected]> Co-authored-by: Tobias Büschel <[email protected]> Co-authored-by: mad-jose <[email protected]> Co-authored-by: mad-jose <[email protected]> Co-authored-by: Andrew Hyndman <[email protected]> Co-authored-by: Brody McKee <[email protected]> Co-authored-by: James George <[email protected]> Co-authored-by: Dion Woolley <[email protected]> Co-authored-by: Walker Clem <[email protected]>
Summary
Adds support for a new environment variable,
BUILD_PATH, which overrides the create-react-app output directory.Fixes #378
Fixes #778
Fixes #1354
Fixes #3824
Fixes #3973
Fixes #6211
Relates to #7802
Fixes #8600
Rationale
First, I know, this is a hot button issue. I have been following create-react-app for years now, and I understand and support the objective of providing a configuration-free setup experience for new React projects. However, I hope you'll allow me a few paragraphs to make an argument for this change.
I think there are several qualities about build path configuration that make it a good candidate as an addition to create-react-app's set of "advanced configuration" environment variables:
mvcommand is not cross-platform compatibleIn summary, I think that a customisable output path is: cheap to support, won't add to maintenance burden, reduces ongoing support work, and allows significantly more projects to avoid ejecting and benefit from future CRA updates. Together, I think these qualities make a new
BUILD_PATHenvironment variable a good candidate for support.Verification
To verify this change works, I followed the guide in CONTRIBUTING.md and bootstrapped a project locally.
In that project, I verified the following configuration cases:
/build:/dist:In the third case, I also verified running
yarn buildmultiple times correctly cleans up files before outputting a new build.Thank you to the create-react-app team being such exemplary members of the React and open source communities, and I appreciate you considering my pull request.