-
-
Notifications
You must be signed in to change notification settings - Fork 26.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
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 (facebook#9921) Co-authored-by: Konstantin Simeonov <[email protected]> * Add logo license to README * Remove trailing space in reportWebVitals.ts (facebook#10040) * docs: add React Testing Library as a library requiring jsdom (facebook#10052) Co-authored-by: Ian Schmitz <[email protected]> * Increase Workbox's maximumFileSizeToCacheInBytes (facebook#10048) * Create FUNDING.yml * replace inquirer with prompts (facebook#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 (facebook#10143) * chore: bump typescript version (facebook#10141) Co-authored-by: Ian Schmitz <[email protected]> * Add TypeScript 4.x as peerDependency to react-scripts(facebook#9964) * remove chalk from formatWebpackMessages (facebook#10198) * Upgrade @svgr/webpack to fix build error (facebook#10213) Co-authored-by: Ian Schmitz <[email protected]> * Improve vendor chunk names in development (facebook#9569) * Update postcss packages (facebook#10003) Co-authored-by: Ian Schmitz <[email protected]> * Recovered some integration tests (facebook#10091) * Upgrade sass-loader (facebook#9988) * Move ESLint cache file into node_modules (facebook#9977) Co-authored-by: Ian Schmitz <[email protected]> * Revert "Update postcss packages" (facebook#10216) This reverts commit 580ed5d. * Remove references to Node 8 (facebook#10214) * fix(react-scripts): add missing peer dependency react and update react-refresh-webpack-plugin (facebook#9872) * Update using-the-public-folder.md (facebook#10314) Some library --> Some libraries * docs: add missing override options for Jest config (facebook#9473) * Fix CI tests (facebook#10217) * appTsConfig immutability handling by immer (facebook#10027) Co-authored-by: mad-jose <[email protected]> * Add support for new BUILD_PATH advanced configuration variable (facebook#8986) * Add opt-out for eslint-webpack-plugin (facebook#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 (facebook#10384) * Bump webpack-dev-server 3.11.0 -> 3.11.1 (facebook#10312) Resolves facebook#10084 security vulnerability in websocket-driver library version 0.5.6, imported transitively by sockjs * Upgrade eslint-webpack-plugin to fix opt-out flag (facebook#10590) * update immer to 8.0.1 to address vulnerability (facebook#10412) Resolves facebook#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:
mv
command 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_PATH
environment 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 build
multiple 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.