Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

fix: import.meta.env and process.env undefined variable replacement (fix #8663) #10958

Merged
merged 3 commits into from
Nov 28, 2022

Conversation

julienv3
Copy link
Contributor

@julienv3 julienv3 commented Nov 16, 2022

Description

Fixes Vite using the replacement for "import.meta.env" instead of the replacement for "import.meta.env." when replacing an undefined environment variable (and any other "."-ending replacement never being used)
fix #8663

Additional context

Code:
import.meta.env.UNDEFINED
Expected replacement:
({}).UNDEFINED
Actual replacement:
{"BASE_URL":"/","MODE":"production","DEV":false,"PROD":true}.UNDEFINED

Note that the above is inlining the full list of known env variables but also creating invalid JavaScript in some scenarios.
Issue originally reported at #8663
Additional broken build repro:
https://stackblitz.com/edit/vitejs-vite-bthpb6?file=main.js&terminal=build


What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Before submitting the PR, please make sure you do the following

  • Read the Contributing Guidelines.
  • Read the Pull Request Guidelines and follow the Commit Convention.
  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
  • Ideally, include relevant tests that fail without this PR but pass with it.

@julienv3 julienv3 changed the title fix: import.meta.env and process.env undefined variable replacement (fix #8663) fix: import.meta.env and process.env undefined variable replacement (fixes #8663) Nov 16, 2022
@julienv3 julienv3 changed the title fix: import.meta.env and process.env undefined variable replacement (fixes #8663) fix: import.meta.env and process.env undefined variable replacement (fix #8663) Nov 16, 2022
Copy link
Member

@bluwy bluwy left a comment

Choose a reason for hiding this comment

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

Thanks for the fix!

@patak-dev patak-dev merged commit 3e0cd3d into vitejs:main Nov 28, 2022
bluwy pushed a commit that referenced this pull request Dec 5, 2022
patak-dev pushed a commit that referenced this pull request Dec 5, 2022
* fix: glob import parsing (#10949) (#11056)

closes #10949
closes #11051

* fix: import.meta.env and process.env undefined variable replacement (fix #8663) (#10958)

Co-authored-by: bluwy <bjornlu.dev@gmail.com>
fix #8663

* fix(esbuild): handle inline sourcemap option (#11120)

* fix(importGlob): preserve line count for sourcemap (#11122)

* fix: Dev SSR dep optimization + respect optimizeDeps.include (#11123)

* fix: reset global regex before match (#11132)

* chore: fix test

Co-authored-by: gtmnayan <50981692+gtm-nayan@users.noreply.github.com>
Co-authored-by: julienv3 <julienv3@gmail.com>
Co-authored-by: 翠 / green <green@sapphi.red>
futurGH pushed a commit to futurGH/vite that referenced this pull request Feb 26, 2023
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Incorrect define replacement in build
3 participants