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

Rut*_*ula 5 deployment module node.js typescript angular

我的 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 在部署时安装节点模块,因此这只在我手动构建产品版本时有帮助。

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

由于现在的 Angular 并没有真正允许 webpack 配置,我尝试添加global.console = global.console || require('console-browserify'); (或) global.console = global.console || require('console'); 到我的 polyfill,但无济于事。

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

Dan*_*an. 11

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

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

解决方案当然是删除该导入语句。


Rut*_*ula 1

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