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

Angular从7升级到12后启动报错process is not defined如何解决?

解决方案

1 处理node-sass废弃警告

执行以下两条命令替换sass编译工具即可消除警告:

  • 卸载废弃的node-sass:npm uninstall node-sass
  • 安装官方推荐的sass包:npm install sass --save-dev

2 处理ReferenceError: process is not defined报错

该问题的根因是Angular 12默认使用Webpack 5,Webpack 5不再默认注入Node.js核心模块的polyfill,也不会全局暴露process对象,导致依赖process的代码运行报错,可按以下步骤修复:

方案1:手动注入process polyfill(兼容第三方依赖调用process的场景)

  • 安装process polyfill包:npm install process --save-dev
  • 打开项目根目录下的src/polyfills.ts文件,在文件最顶部添加以下代码:
import * as process from 'process';
window.process = process;
  • 若执行上述操作后仍有报错,打开angular.json配置文件,在projects -> 你的项目名称 -> architect -> build -> options节点下添加配置:
"allowedCommonJsDependencies": ["process", "util"]
  • 清理缓存重启项目:npm start -- --reset-cache

方案2:替换业务代码中的process调用(推荐)

如果是业务代码中直接调用了process.env相关逻辑,建议直接替换为Angular原生的环境变量方案,读取src/environments目录下的环境变量配置文件内容,无需额外引入polyfill,更符合Angular开发规范。

内容的提问来源于stack exchange,提问作者cpiock

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 15:39:03