# Define

Raw Expression ``

String ``

Number ``

Boolean ``

Undefined ``

Object

Env Var ``

process node env: ``

process env: ``

process as property: ``

spread object: ``

spread array: ``

dollar identifier: ``

unicode identifier: ``

no property: ``

no identifier substring:

define variable in html: `__EXP__`

import json: ``

define in dep: ``

define in environment: ``

## Define ignores string literals

process.env. ``

global.process.env. ``

globalThis.process.env. ``

process.env.NODE_ENV ``

global.process.env.NODE_ENV ``

globalThis.process.env.NODE_ENV ``

import.meta.hot ``

## Define replaces constants in template literal expressions

process.env. ``

global.process.env. ``

globalThis.process.env. ``

process.env.NODE_ENV ``

global.process.env.NODE_ENV ``

globalThis.process.env.NODE_ENV ``

import.meta.hot ``

## Define undefined constants on import.meta.env when it's a invalid json

import.meta.env.UNDEFINED ``

import.meta.env.SOME_IDENTIFIER ``

## Optional values are detected by pattern properly

process?.env?.SOMEVAR ``

## Env import with query parameters works correctly

/@vite/env?foo should be transformed ``