You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:50:45