NX Angular Monorepo中库文件使用process.env报错求助
NX Angular库中process.env报错的解决办法
1. 检查根目录TypeScript配置
NX的库默认继承根目录的tsconfig.base.json,光改库自身的配置没用。打开根目录的这个文件,把"node"加到compilerOptions.types数组里:
{ "compilerOptions": { "types": ["node"] } }
2. 手动声明process全局类型
如果上面的配置还是不生效,在你的库的src文件夹下新建typings.d.ts文件,写入以下代码:
declare global { namespace NodeJS { interface ProcessEnv { // 可在这里添加你用到的环境变量类型,比如: YOUR_API_KEY: string; } } } export {};
手动给TypeScript指明process.env的类型,就能消除报错。
3. 核对库的构建配置
打开库的project.json,检查build目标里的tsConfig路径是否正确指向库的配置文件,比如:
{ "targets": { "build": { "options": { "tsConfig": "libs/your-library/tsconfig.lib.json" } } } }
同时确认tsconfig.lib.json里的extends路径正确,且自身的types数组包含node。
4. 改用NX官方环境变量方案
直接用process.env有时候会和NX的构建流程冲突,不如用NX自带的工具:
- 根目录创建
.env文件,写入你的环境变量 - 在库的代码里导入
@nx/environment:
import { env } from '@nx/environment'; // 使用env.YOUR_API_KEY即可
这种方式更适配NX生态,也不会有类型问题。
内容的提问来源于stack exchange,提问作者r3plica
相关产品推荐
相关产品推荐

