Parcel: 馃檵 Aliasing modules -- react -> preact-compat etc.

Created on 16 Feb 2018  路  3Comments  路  Source: parcel-bundler/parcel

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.

Feature

Most helpful comment

See #850 for an implementation of aliases as part of our new resolver.

All 3 comments

Would really love this. Parcel is very cool, but I've kind of screwed myself out of its use in the short term by using Webpack's aliasing so much.

See #850 for an implementation of aliases as part of our new resolver.

no work

Was this page helpful?
0 / 5 - 0 ratings