Skip to content

import.meta.env.DEV and PROD are incorrect if a custom mode is provided programmatically #9203

@Rich-Harris

Description

@Rich-Harris

Describe the bug

Ordinarily, building a Vite app results in import.meta.env.DEV === false and import.meta.env.PROD === true regardless of the mode configuration.

If you set mode when calling vite.build(...) programmatically, however, DEV and PROD are true and false unless the mode happens to be production.

Reproduction

https://github.com/Rich-Harris/vite-mode-repro

System Info

System:
    OS: macOS 12.0.1
    CPU: (10) arm64 Apple M1 Max
    Memory: 779.03 MB / 32.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 16.15.1 - ~/.nvm/versions/node/v16.15.1/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v16.15.1/bin/yarn
    npm: 8.11.0 - ~/.nvm/versions/node/v16.15.1/bin/npm
  Browsers:
    Chrome: 103.0.5060.114
    Chrome Canary: 105.0.5187.0
    Firefox: 102.0.1
    Safari: 15.1
  npmPackages:
    vite: ^3.0.2 => 3.0.2

Used Package Manager

npm

Logs

No response

Validations

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    P2 - 4

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions