Node v10.24.0下启动Angular项目报错Cannot find module 'worker_threads'
报错根因
你使用的Node v10.24.0版本中,worker_threads属于实验性API,默认未启用。当前项目对应的Angular CLI版本依赖该模块的稳定支持,因此执行ng serve时抛出找不到模块的错误。后续的npm ELIFECYCLE报错为上层连锁报错,是ng serve执行失败触发的,无额外排查价值。
解决方案
- 方案1(推荐):升级Node.js版本至12.x及以上
Node.js从v11.7.0版本开始正式移除worker_threads的实验标签、默认启用该模块,是兼容性最好的解决方案。升级Node完成后重新执行npm install安装依赖,再运行ng serve即可正常启动项目。 - 方案2(临时兼容,仅适用于必须保留Node v10的场景):修改启动命令增加实验参数
将package.json中scripts字段里的start配置修改为:node --experimental-worker node_modules/@angular/cli/bin/ng serve
该方式仅为临时兼容手段,可能存在其他未预知的兼容性问题,不建议长期使用。 - 方案3:降级Angular CLI版本至v10及以下
如果不想升级Node版本,可将项目的Angular CLI版本降级到v10及以下范围,该版本区间的CLI不需要依赖worker_threads模块,可适配Node v10环境。
内容的提问来源于stack exchange,提问作者joni
相关产品推荐
相关产品推荐

