Note from Maintainers: see #1492 (comment) for the latest thinking on this.
The Problem
Say I have two sibling CRA apps, Foo and Bar. What is the best practice for sharing a common component, Baz between the two apps?
Scope
It would make sense to have a sibling folder Baz with it's own package.json, and to use npm link to access it from Foo and Bar.
But it seems that npm link has bigger issues, so maybe we should explore alternatives. One example is wml, which simply watches and copies files.
Building
Even when npm link works fine, the JSX in Baz has not been compiled.
Per this discussion, I think we should compile separate modules like Baz independently, but that will require boilerplate such as babel config. CRA helps avoid this for full apps, but we don't yet have create-react-component to help manage the boilerplate of shared components.
Optimizing for Developer Experience
There are a few ways to clean this up, but I'm curious what people think is the current best practice. What is the ideal developer experience?
The Problem
Say I have two sibling CRA apps,
FooandBar. What is the best practice for sharing a common component,Bazbetween the two apps?Scope
It would make sense to have a sibling folder
Bazwith it's ownpackage.json, and to usenpm linkto access it fromFooandBar.But it seems that npm link has bigger issues, so maybe we should explore alternatives. One example is wml, which simply watches and copies files.
Building
Even when
npm linkworks fine, the JSX inBazhas not been compiled.Per this discussion, I think we should compile separate modules like
Bazindependently, but that will require boilerplate such as babel config. CRA helps avoid this for full apps, but we don't yet havecreate-react-componentto help manage the boilerplate of shared components.Optimizing for Developer Experience
There are a few ways to clean this up, but I'm curious what people think is the current best practice. What is the ideal developer experience?