Skip to content
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

fix: avoid esbuild warning when running dev/bundle #6043

Merged
merged 1 commit into from
Jun 14, 2024

Conversation

threepointone
Copy link
Contributor

(Another simpler take on #5999, inspired by #6006)

I've been experimenting with esbuild 0.21.4 with wrangler. It's mostly been fine. But I get this warning every time

▲ [WARNING] Import "__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__" will always be undefined because there is no matching export in "src/index.ts" [import-is-undefined]

    .wrangler/tmp/bundle-Z3YXTd/middleware-insertion-facade.js:8:23:
      8 │ .....(OTHER_EXPORTS.__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__ ?? []),
        ╵

This is because [email protected] enabled a warning by default whenever an undefined import is accessed on an imports object. However we abuse imports to inject stuff in middleware.test.ts. A simple fix is to only inject that code in tests.

I've been experimenting with esbuild 0.21.4 with wrangler. It's mostly been fine. But I get this warning every time

```
▲ [WARNING] Import "__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__" will always be undefined because there is no matching export in "src/index.ts" [import-is-undefined]

    .wrangler/tmp/bundle-Z3YXTd/middleware-insertion-facade.js:8:23:
      8 │ .....(OTHER_EXPORTS.__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__ ?? []),
        ╵
```

This is because [email protected] enabled a warning by default whenever an undefined import is accessed on an imports object. However we abuse imports to inject stuff in `middleware.test.ts`. A simple fix is to only inject that code in tests.
@threepointone threepointone requested a review from a team as a code owner June 14, 2024 16:12
Copy link

changeset-bot bot commented Jun 14, 2024

🦋 Changeset detected

Latest commit: 4d9dd57

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
wrangler Patch
@cloudflare/vitest-pool-workers Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@threepointone threepointone mentioned this pull request Jun 14, 2024
12 tasks
Copy link
Contributor

@petebacondarwin petebacondarwin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love it!

@@ -68,7 +68,7 @@ export async function applyMiddlewareLoaderFacade(
export * from "${prepareFilePath(entry.file)}";

export const __INTERNAL_WRANGLER_MIDDLEWARE__ = [
...(OTHER_EXPORTS.__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__ ?? []),
${process.env.NODE_ENV === "test" ? `...(OTHER_EXPORTS.__INJECT_FOR_TESTING_WRANGLER_MIDDLEWARE__ ?? []),` : ""}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does Vitest set this?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup

Copy link
Contributor

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-wrangler-6043

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/6043/npm-package-wrangler-6043

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-wrangler-6043 dev path/to/script.js
Additional artifacts:
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-create-cloudflare-6043 --no-auto-update
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-cloudflare-kv-asset-handler-6043
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-miniflare-6043
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-cloudflare-pages-shared-6043
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9519135628/npm-package-cloudflare-vitest-pool-workers-6043

Note that these links will no longer work once the GitHub Actions artifact expires.


[email protected] includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20240610.0
workerd 1.20240610.1 1.20240610.1
workerd --version 1.20240610.1 2024-06-10

Please ensure constraints are pinned, and miniflare/workerd minor versions match.

@threepointone threepointone merged commit db66101 into main Jun 14, 2024
19 checks passed
@threepointone threepointone deleted the fix-esbuild-warning-take-2 branch June 14, 2024 17:39
@workers-devprod workers-devprod added the contribution [Holopin] Recognizes an open-source contribution, big or small label Jun 14, 2024
Copy link

holopin-bot bot commented Jun 14, 2024

Congratulations @threepointone, you just earned a holobyte! Here it is: https://holopin.io/holobyte/clxez4jka49160el2effqa3gt

This badge can only be claimed by you, so make sure that your GitHub account is linked to your Holopin account. You can manage those preferences here: https://holopin.io/account.
Or if you're new to Holopin, you can simply sign up with GitHub, which will do the trick!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution [Holopin] Recognizes an open-source contribution, big or small
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants