-
Notifications
You must be signed in to change notification settings - Fork 276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Publish @wp-playground/remote (types only) #1924
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, thank @psrpinto! I'm happy to get this merged as soon as the README-npm.md discussion is resolved
…emote We only want the types.
The types are already imported, and without this change, IDEs will show the type twice, when attempting to navigate to it. I also took the liberty of reordering the exports, so that @php* exports are grouped together.
|
Thank you so much for contributing @psrpinto! |
Releasing was failing in CI because the package isn't public. |
…npm package (#1949) Fixes #1951 The reason why type definitions were not being published was that `lerna` was using `./packages/playground/remote/` as the source directory, instead of `./dist/packages/playground/remote/`. Since the type definitions are only present in `dist/`, they were not being published. In #1924 I did test that the published package contained the type definitions, but I did not test it using `lerna`. Instead, I tested using `npm publish` directly from the `dist/` directory. Now I have tested this PR using `lerna` and can confirm that the published package will contain the type definitions. I learned my lesson, from now on I'll always test publishing packages with `lerna` instead of `npm publish` :) Here's the relevant `lerna` logs that show the type definitions will now be included in the published package: ``` lerna notice 📦 @wp-playground/[email protected] lerna notice === Tarball Contents === lerna notice 696B package.json lerna notice 465B lib/boot-playground-remote.d.ts lerna notice 92B lib/config.d.ts lerna notice 567B lib/create-memoized-fetch.d.ts lerna notice 23B index.d.ts lerna notice 220B lib/index.d.ts lerna notice 587B lib/progress-bar/index.d.ts lerna notice 1.4kB lib/offline-mode-cache.d.ts lerna notice 2.4kB lib/playground-client.d.ts lerna notice 677B lib/setup-fetch-network-transport.d.ts lerna notice 2.4kB lib/worker-thread.d.ts lerna notice 3.6kB lib/worker-utils.d.ts lerna notice === Tarball Details === ```
Fixes #1725
This PR publishes the
@wp-playground/remote
package with only type definitions, as per discussion in #1725.I've tested the changes introduced here locally, using verdaccio, and can confirm that the issues with missing types (namely
PlaygroundClient
) are fixed.I took the liberty to fix some small things I noticed, and made sure to add context in commit messages, when necessary.
Package contents
Testing instructions
Install verdaccio:
Run it:
Edit
tools/scripts/publish.mjs
so that thespawnSync
call takes an extra--registry
argument:Edit the
publish
command inpackages/playground/client/project.json
so that it looks something like:Edit the
publish
command inpackages/playground/remote/project.json
so that it looks something like:Publish both packages to verdaccio:
Clone the test repo and configure it to use the verdaccio registry:
Edit
package.json
of the test repo so that it references the version of@wp-playground/client
you published above:Then
npm install
.Open the test repo in your IDE, navigate to
src/playground/Playground.tsx
and make sure thePlaygroundClient
has correct completion, and that you can navigate to its file.