Skip to content

🙋 Aliasing modules -- react -> preact-compat etc. #832

@fu5ha

Description

@fu5ha

It is impossible to use parcel with preact-compat because it requires being able to alias all references to 'react' and 'react-dom' to 'preact-compat'. It is possible to do this for local package using browser in package.json, but does not work when including external React components.

🤔 Expected Behavior

Add an alias field in, say, package.json, like

"alias": {
    "^react$": "preact-compat",
    "react-dom$": "preact-compat",
    "react-dom/server": "preact-compat/server"
}

Which would then replace all references to react with preact-compat etc.

😯 Current Behavior

Using browser field, I can replace local import/requires successfully, but when importing, say react-apollo, it doesn't replace there.

🔦 Context

I know there was an issue #25 for this but it got locked and I haven't seen any further discussion about it, but this is quite inconvenient for people trying to use preact. I think it was a bad decision to completely delete all discussion about current workarounds as now people have no reference on what to do until this gets implemented natively.

Workaround for now

The workaround I found is to make symbolic links in the node_modules folder so that node_modules/react and node_modules/react-dom both link to node_modules/preact-compat.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions