Open qwertie opened 6 years ago
Third party packages usually opt for one of the following ways to be compatible with react/preact:
mypackage/preact
mypackage-preact
+ mypackage-react
Hmm, but if you go with option 1 or 2 - what do you do, mark React as an optional dependency?
For all options you'd mark react
or preact
as a peerDependency
. Otherwise the user would likely end up with multiple versions of (p)react
You might find the technique shown here to be useful: https://jasonformat.com/universal-vdom-components-with-factory-loader/
I don't think that technique would work in TypeScript (which I'm using) as the compiler would be unable to load the pseudo-module. And I doubt the technique could be used with Parcel (which I'm also using). Hmm...
I've always wanted to release an npm package that tries to infer which virtual-dom library a given project is using. It'd be neat:
import { createElement, Component, cloneElement, render } from 'any-vdom';
// if you have preact installed you get the methods from preact
// if you have react installed you get its methods
// etc
As I was typing
npm install react
, I thought to myself: I'm sure my package would be preact-compatible, but if anybody writesnpm i mypackage
they are going to getreact
as a dependency, which maybe they don't want. Is there a way I can publish this thing in such a way that it's compatible with both?