Angular 构建 - 未找到模块:错误:无法解析“控制台”

Posted

技术标签:

【中文标题】Angular 构建 - 未找到模块:错误:无法解析“控制台”【英文标题】:Angular build - Module not found: Error: Can't resolve 'console' 【发布时间】:2020-06-15 06:56:38 【问题描述】:

我的 Angular 项目构建以及最终部署到 heroku 时遇到问题。我正在使用一个名为二进制解析器的旧(ish)npm 包,当我构建/部署到 heroku 时会导致以下错误: Module not found: Error: Can't resolve 'console' in '/tmp/build_e75b87f248f44978f9537d83b3172254/node_modules/binary-parser/dist'

binary-parser.js 有一行 require("console"); 只在一个地方使用,所以本地构建成功并且应用程序可以完美运行,只要我从该行中完全删除控制台。但是由于 heroku 在部署时会安装节点模块,这仅在我手动构建 prod 版本时才有帮助。

我已经为二进制解析器和 TS 安装了类型,并且还在 tsconfig.json 和 tsconfig.app.json 编译器选项中包含了 "types": ["node"]。

由于这些天 Angular 并不允许配置 webpack,我尝试添加 global.console = global.console || require('console-browserify'); (要么) global.console = global.console || require('console'); 到我的polyfills,无济于事。

关于如何解决这个问题的任何想法?我是否需要配置自定义 webpack 来规避这个问题?如有必要,我很乐意发布更多信息!

【问题讨论】:

【参考方案1】:

这是一个可能的原因,可能是也可能不是您或其他阅读此问题的人正在经历的...

当我输入 console.log 时,我的 IDE 的自动导入功能添加了 import * as console from "console";

解决方案当然是删除那个 import 语句。

【讨论】:

【参考方案2】:

在尝试了多个小时以提出正确的配置后,我能想出的唯一解决方案是将有问题的 repo 分叉并将 tsconfig 目标从 es5 更改为 es6,这在编译时完全摆脱了控制台导入。

【讨论】:

以上是关于Angular 构建 - 未找到模块:错误:无法解析“控制台”的主要内容,如果未能解决你的问题,请参考以下文章

NestJS + Angular 项目抛出未找到模块:错误:无法解析“缓存管理器”

“未找到模块:错误:无法解析模块”错误在 signrequest-client 角度

Angular 2 - 多个模块中的管道重用 - 未找到错误或重复定义

vis-timeline 和 angular 8 未找到模块错误

ionic-app-script在构建时失败 - 无法找到模块'@ angular / compiler-cli / ngtools2'

无法加载资源 404(未找到) - 文件位置错误?