Skip to content
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

Combine efforts with mozilla/neo? #339

Closed
eliperelman opened this issue Aug 3, 2016 · 5 comments
Closed

Combine efforts with mozilla/neo? #339

eliperelman opened this issue Aug 3, 2016 · 5 comments

Comments

@eliperelman
Copy link
Contributor

eliperelman commented Aug 3, 2016

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

@eliperelman
Copy link
Contributor Author

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?

@gaearon
Copy link
Contributor

gaearon commented Aug 3, 2016

Hey, thanks for coming by! I wasn't aware of this project, looks nice.

I wrote some thoughts on this proposal in #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’s 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:

  • We can't freely change config without risk of breaking someone extending that section. So "painless upgrades" are no longer painless.
  • We can't move away from Webpack. I'm not saying we necessarily will but I would like to keep that option open.

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.

@gaearon gaearon closed this as completed Aug 3, 2016
@gaearon
Copy link
Contributor

gaearon commented Aug 3, 2016

(By the way would love a PR adding neo to "Alternatives" section.)

@gaearon
Copy link
Contributor

gaearon commented Aug 3, 2016

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.

@eliperelman
Copy link
Contributor Author

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!

This was referenced Aug 4, 2016
linhaobin pushed a commit to linhaobin/create-react-app-hb that referenced this issue Jun 28, 2018
@lock lock bot locked and limited conversation to collaborators Jan 23, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants