This repo is very similar to the efforts put into mozilla/neo, including simple project scaffolding and zero initial configuration. A key difference between create-react-app and Neo is that Neo supports modifying/merging building configurations without having to do an eject. For example, if I wanted to override or add a particular webpack configuration, you can do so by creating a new config file that requires one from Neo, change a value, and export the new config. You can then pass this new config to the Neo cli from npm scripts. [1]
Do you think this has value, and maybe our efforts can be combined by moving Neo functionality to create-react-app?
[1] https://github.com/mozilla/neo/tree/master/commands/init/templates#building
Just glancing through issues, it seems like several of them could be solved by combining efforts/code. If this package would expose its configuration as well as a cli/bin interface, that would get most of the way there. Thoughts?
Hey, thanks for coming by! I wasn't aware of this project, looks nice.
I wrote some thoughts on this proposal in https://github.com/facebookincubator/create-react-app/issues/99. Even if we end up going that way I don't think now is a good time for us.
The biggest priority for us is to provide hassle-free experience with no annoying issues or slight incompatibilities. This is, in my opinion, hard to do when the user can configure anything. Something鈥檚 going to be incompatible with something else; people are going to start relying on unstable loaders; React "example" apps that use them are going to have issues; in the end, the beginner loses because they can't get a sample project working. I've seen it personally too many times.
Additionally allowing arbitrary configuration has other downsides:
I hope this gives some insight into why we don't provide escape hatches other than "eject". We want to tightly control the overall experience, and we think there is a subset of React users who will appreciate it despite limitations.
(By the way would love a PR adding neo to "Alternatives" section.)
Also to be clear, I think both tools should live on since they have slightly different focus, but I'd love to see you participate in issues and exchange ideas. I'll be keeping an eye on neo as well.
We can't freely change config without risk of breaking someone extending that section. So "painless upgrades" are no longer painless.
I think you make a good point here. Essentially any time create-react-app makes a change to the Webpack config, it has the potential to be a breaking change, and may introduce runaway major versions.
Thanks for the feedback, I'll contribute where I can!
Most helpful comment
Hey, thanks for coming by! I wasn't aware of this project, looks nice.
I wrote some thoughts on this proposal in https://github.com/facebookincubator/create-react-app/issues/99. Even if we end up going that way I don't think now is a good time for us.
The biggest priority for us is to provide hassle-free experience with no annoying issues or slight incompatibilities. This is, in my opinion, hard to do when the user can configure anything. Something鈥檚 going to be incompatible with something else; people are going to start relying on unstable loaders; React "example" apps that use them are going to have issues; in the end, the beginner loses because they can't get a sample project working. I've seen it personally too many times.
Additionally allowing arbitrary configuration has other downsides:
I hope this gives some insight into why we don't provide escape hatches other than "eject". We want to tightly control the overall experience, and we think there is a subset of React users who will appreciate it despite limitations.