NodeJS中TS文件设置环境变量遇TS2591错误求助
Node.js TypeScript 环境变量配置问题排查
你在Node.js的TypeScript文件中配置环境变量时遇到以下错误:
error TS2591: Cannot find name 'process'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig. baseUrl: process.env.TEST
相关文件内容:
// environment.prod.ts
import 'dotenv/config'; export const environment = { production: true, baseUrl: process.env.TEST };
// .env
TEST=whatever
已安装@types/node和dotenv,但IDE仍提示TEST存在问题,可通过以下步骤排查遗漏配置:
检查tsconfig.json核心配置
确保tsconfig.json的compilerOptions里包含关键配置,让TypeScript识别Node.js环境:{ "compilerOptions": { "types": ["node"], // 必须添加node类型声明 "typeRoots": ["./node_modules/@types"], // 指明类型定义文件位置 "target": "ES6", // 适配Node.js的ES版本 "module": "CommonJS" // Node.js默认模块系统(若用ES模块则设为ESNext并在package.json加"type": "module") }, "include": ["src/**/*"] // 确保项目文件被TypeScript扫描 }为自定义环境变量添加类型声明
TypeScript默认不识别你自定义的TEST变量,需手动声明类型。在项目根目录创建env.d.ts文件:declare namespace NodeJS { interface ProcessEnv { TEST: string; // 其他自定义环境变量也可在此添加 } }然后在
tsconfig.json的include字段中加入这个文件,确保TypeScript能读取到:"include": ["src/**/*", "env.d.ts"]确认dotenv加载时机
如果environment.prod.ts的导入早于dotenv加载,会导致环境变量未被读取。确保dotenv/config的导入在文件最顶部,或者在应用入口文件先加载dotenv,再导入环境配置文件:// 入口文件示例 import 'dotenv/config'; import { environment } from './environment.prod';
内容的提问来源于stack exchange,提问作者M. Mariscal
相关产品推荐
相关产品推荐

