Skip to content

fix(wrangler): handling of process.env.NODE_ENV in bundling mode#7974

Closed
vicb wants to merge 5 commits intomainfrom
vb-branch-2
Closed

fix(wrangler): handling of process.env.NODE_ENV in bundling mode#7974
vicb wants to merge 5 commits intomainfrom
vb-branch-2

Conversation

@vicb
Copy link
Copy Markdown
Contributor

@vicb vicb commented Jan 30, 2025

Re-introduce #7932 with a test (reverted in #7967 because it was missing a test)


  • Tests
    • TODO (before merge)
    • Tests included - really this time :)
    • Tests not necessary because:
  • E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
    • I don't know
    • Required
    • Not required because: the initial PR was E2E tested, let's save resources :)
  • Public documentation
    • TODO (before merge)
    • Cloudflare docs PR(s):
    • Documentation not necessary because: bug fix

@vicb vicb requested a review from a team as a code owner January 30, 2025 15:48
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Jan 30, 2025

🦋 Changeset detected

Latest commit: 09388b8

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

@vicb vicb changed the title vb-branch-2 fix(wrangler): handling of process.env.NODE_ENV in bundling mode Jan 30, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jan 30, 2025

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/13143624992/npm-package-wrangler-7974

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

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

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-wrangler-7974 dev path/to/script.js
Additional artifacts:

cloudflare-workers-bindings-extension:

wget https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-workers-bindings-extension-7974 -O ./cloudflare-workers-bindings-extension.0.0.0-vc785f3e7b.vsix && code --install-extension ./cloudflare-workers-bindings-extension.0.0.0-vc785f3e7b.vsix

create-cloudflare:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-create-cloudflare-7974 --no-auto-update

@cloudflare/kv-asset-handler:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-kv-asset-handler-7974

miniflare:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-miniflare-7974

@cloudflare/pages-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-pages-shared-7974

@cloudflare/unenv-preset:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-unenv-preset-7974

@cloudflare/vite-plugin:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-vite-plugin-7974

@cloudflare/vitest-pool-workers:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-vitest-pool-workers-7974

@cloudflare/workers-editor-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-workers-editor-shared-7974

@cloudflare/workers-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-workers-shared-7974

@cloudflare/workflows-shared:

npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/13143624992/npm-package-cloudflare-workflows-shared-7974

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


wrangler@3.107.3 includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20250129.0
workerd 1.20250129.0 1.20250129.0
workerd --version 1.20250129.0 2025-01-29

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

Copy link
Copy Markdown
Contributor

@penalosa penalosa left a comment

Choose a reason for hiding this comment

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

Could you add a test for NODE_ENV?

@vicb vicb force-pushed the vb-branch-2 branch 3 times, most recently from 39b99e4 to 096480a Compare January 31, 2025 15:30
@vicb
Copy link
Copy Markdown
Contributor Author

vicb commented Jan 31, 2025

Could you add a test for NODE_ENV?

Just did that by moving the test to a specific ESBuild/define file.
We can re-use that for the last bug in the original issue.

Note that a default value is set somewhere - it probably explains why the bug went unnoticed...

@vicb vicb requested a review from penalosa February 3, 2025 15:18
@vicb
Copy link
Copy Markdown
Contributor Author

vicb commented Feb 3, 2025

latest forced push is a rebase

@vicb vicb requested a review from petebacondarwin February 4, 2025 19:47
Comment thread packages/wrangler/src/__tests__/esbuild-define.test.ts Outdated
Comment thread packages/wrangler/src/__tests__/esbuild-define.test.ts Outdated

expect(code).toContain(`userAgent = "Cloudflare-Workers";`);
expect(code).toContain(`g = global;`);
expect(code).toContain(`nodeEnv = "development";`);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Where does this development value come from?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Not sure... but this is not changed by this PR.
Is it ok if I create an issue to investigate and link it here to tackle in a follow up PR?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Oh actually this comes from the ...define:

		define: {
			...(defineNavigatorUserAgent
				? { "navigator.userAgent": `"Cloudflare-Workers"` }
				: {}),
			...(runtimeProcessEnv
				? { "process.env.NODE_ENV": `"${runtimeProcessEnv}"` }
				: {}),
			...(nodejsCompatMode === "legacy" ? { global: "globalThis" } : {}),
			...define,
		},

I need to investigate this more

@penalosa
Copy link
Copy Markdown
Contributor

Closing for now as this is stale. We may re-address in future.

@penalosa penalosa closed this Sep 10, 2025
@github-project-automation github-project-automation Bot moved this from Untriaged to Done in workers-sdk Sep 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants