Fix exports of @theatre/r3f so it is consistently interpreted across bundlers

Before this commit, the exports field of `@theatre/r3f` was:

```
"exports": {
  ".": "./dist/index.js",
  "./extension": "./dist/extension/index.js"
 },
 ```
So users could import the extension from '@theatre/r3f/extension'

However, if the user’s bundler doesn’t support the exports field, they’d have to import from @theatre/r3f/dist/extension. There are 3 problems with this approach:

1. We have to ask users to try both paths and see which works for their bundler.
2. Users can’t copy code from each other if their bundler setups are different.
3. To make matters worse, if a user’s bundler supports exports, they can’t import from @theatre/r3f/dist/extension.

This is all confusing, so we're fixing it by exposing @theatrer/3f/dist/extension and not @theatre/r3f/extension. Uglier, but more consistent, and avoids the above 3 problems.
This commit is contained in:
Aria Minaei 2022-07-12 16:28:52 +02:00 committed by Aria
parent 24ee1b3597
commit 00a039a713
2 changed files with 3 additions and 3 deletions

View file

@ -27,7 +27,7 @@
], ],
"exports": { "exports": {
".": "./dist/index.js", ".": "./dist/index.js",
"./extension": "./dist/extension/index.js" "./dist/extension": "./dist/extension/index.js"
}, },
"scripts": { "scripts": {
"prepack": "yarn run build", "prepack": "yarn run build",

View file

@ -1,7 +1,7 @@
export {default as editable} from './main/editable' export {default as editable} from './main/editable'
export type {EditableState, BindFunction} from './main/store' export type {EditableState, BindFunction} from './main/store'
/** /**
* This is a private API that's exported so that `@theatre/r3f/extension` * This is a private API that's exported so that `@theatre/r3f/dist/extension`
* and `@theatre/r3f` can talk to one another. This API _could_ change * and `@theatre/r3f` can talk to one another. This API _could_ change
* between patch releases, so please don't build on it :) * between patch releases, so please don't build on it :)
* *
@ -12,7 +12,7 @@ export {
allRegisteredObjects as __private_allRegisteredObjects, allRegisteredObjects as __private_allRegisteredObjects,
} from './main/store' } from './main/store'
/** /**
* This is a private API that's exported so that `@theatre/r3f/extension` * This is a private API that's exported so that `@theatre/r3f/dist/extension`
* and `@theatre/r3f` can talk to one another. This API _could_ change * and `@theatre/r3f` can talk to one another. This API _could_ change
* between patch releases, so please don't build on it :) * between patch releases, so please don't build on it :)
* *