-
Notifications
You must be signed in to change notification settings - Fork 710
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 #5999
Conversation
🦋 Changeset detectedLatest commit: 66d690b The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
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 |
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/9430830237/npm-package-wrangler-5999 You can reference the automatically updated head of this PR with: npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/5999/npm-package-wrangler-5999 Or you can use npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9430830237/npm-package-wrangler-5999 dev path/to/script.js Additional artifacts:npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9430830237/npm-package-create-cloudflare-5999 --no-auto-update npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9430830237/npm-package-cloudflare-kv-asset-handler-5999 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9430830237/npm-package-miniflare-5999 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9430830237/npm-package-cloudflare-pages-shared-5999 npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/9430830237/npm-package-cloudflare-vitest-pool-workers-5999 Note that these links will no longer work once the GitHub Actions artifact expires.
Please ensure constraints are pinned, and |
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`. We should probably fix that with a better solution, but an immediate fix to this warning is to make that access not be statically analyzable. This patch does so by defining the export name as a regular variable and using that when reading from it.
281adf9
to
66d690b
Compare
@@ -861,7 +861,19 @@ describe("middleware", () => { | |||
.replace(/\/\/ .*/g, "") | |||
.trim() | |||
).toMatchInlineSnapshot(` | |||
"var src_default = { | |||
"var __defProp = Object.defineProperty; |
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.
of note, it adds some extra code for reading that dynamically. which is why we need a proper fix later so we don't ship any extra code. but this should be fine for now.
Alternately, we should delete middleware.test.ts, it's testing an implementation detail that's explicitly added for the test, which is weird. The test should be for actual middleware. |
Let get #6006 green and land that since it also avoids adding code to production bundles. |
I've been experimenting with esbuild 0.21.4 with wrangler. It's mostly been fine. But I get this warning every time
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
. We should probably fix that with a better solution, but an immediate fix to this warning is to make that access not be statically analyzable. This patch does so by defining the export name as a regular variable and using that when reading from it.