不同Node版本下Angular 19 CLI构建报错:无效execArgv标志
Angular 19构建报错:Invalid execArgv flags: --max-old-space-size=6144
问题描述
原Angular 17项目在Node.js 18.10.1/20.9.0下构建正常,升级到Angular 19后,执行npm run build:prod(原脚本为node --max-old-space-size=6144 node_modules/@angular/cli/bin/ng build)时,无论使用Node.js 18.10.0/20.9.0/22.0.0版本,均出现以下错误:
> node --max-old-space-size=6144 node_modules/@angular/cli/bin/ng build Application bundle generation failed. [106.475 seconds] X [ERROR] Initiated Worker with invalid execArgv flags: --max-old-space-size=6144 [plugin angular-compiler] node_modules/piscina/dist/index.js:130:23: 130 │ const worker = new node_worker_threads_1.Worker((0, node_... ╵ ^
原因分析
Angular 19采用了基于@angular/build的新构建系统,该系统使用Worker线程并行处理编译任务。--max-old-space-size是V8引擎针对主Node进程的内存限制参数,不能传递给Worker线程。原脚本直接给node命令添加该参数,Angular CLI会将这些参数传递给创建的Worker线程,导致Worker初始化失败。
解决方案
修改package.json中的build:prod脚本,通过NODE_OPTIONS环境变量设置主进程的内存限制,避免参数被传递给Worker线程:
修改后的scripts配置
"scripts": { "ng": "ng", "build": "ng build", "build:prod": "NODE_OPTIONS=--max-old-space-size=6144 ng build" }
跨平台兼容(可选)
如果需要兼容Windows系统,先安装cross-env依赖:
npm install cross-env --save-dev
再修改脚本:
"build:prod": "cross-env NODE_OPTIONS=--max-old-space-size=6144 ng build"
验证
执行npm run build:prod,构建应能正常完成,不再出现Worker线程参数错误。
内容的提问来源于stack exchange,提问作者kamilws
相关产品推荐
相关产品推荐

