ES6中使用dotenv读取环境变量时process未定义,求助
解决ES6模块中读取环境变量时
process is not defined的问题 针对Node.js ES模块环境(package.json设"type": "module")
- 先更新dotenv到最新版本,确保对ES模块的支持:
npm update dotenv - 确认
.env文件位于项目根目录,若路径特殊可手动指定:import dotenv from "dotenv"; import { resolve } from "path"; dotenv.config({ path: resolve(process.cwd(), ".env") }); - 若使用TypeScript,需安装
@types/node让类型系统识别process:npm install @types/node --save-dev
针对浏览器端构建工具(如Vite、Webpack)
浏览器环境本身不存在Node.js的process对象,需结合构建工具处理:
- Vite:环境变量需以
VITE_为前缀(如.env中写VITE_EXAMPLE=xxx),代码中通过import.meta.env.VITE_EXAMPLE读取,无需手动引入dotenv。 - Webpack:可使用
dotenv-webpack插件,或通过webpack.DefinePlugin手动注入process.env相关变量,配置完成后即可用process.env.EXAMPLE读取。
基础排查
- 检查
.env文件语法:键值对无需额外加引号(值含空格除外),示例:EXAMPLE=test_value。
内容的提问来源于stack exchange,提问作者feefewfgwtg
相关产品推荐
相关产品推荐

