You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 16, 2021. It is now read-only.
Repository navigation
This repository was archived by the owner on Dec 16, 2021. It is now read-only.
Can I write an npm package compatible with preact and react? #497
As I was typing npm install react, I thought to myself: I'm sure my package would be preact-compatible, but if anybody writes npm i mypackage they are going to get react 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?
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
Reacted by Marvin Hagemeister, Danilo Velasquez Urrutia, Sung Jeon and Sumanth Ratna
Activity
marvinhagemeister commentedon Aug 16, 2018
Third party packages usually opt for one of the following ways to be compatible with react/preact:
mypackage/preactmypackage-preact+mypackage-reactqwertie commentedon Aug 16, 2018
Hmm, but if you go with option 1 or 2 - what do you do, mark React as an optional dependency?
marvinhagemeister commentedon Aug 16, 2018
For all options you'd mark
reactorpreactas apeerDependency. Otherwise the user would likely end up with multiple versions of (p)reactdevelopit commentedon Aug 17, 2018
You might find the technique shown here to be useful:
https://jasonformat.com/universal-vdom-components-with-factory-loader/
qwertie commentedon Aug 17, 2018
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...
developit commentedon Aug 24, 2018
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: