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'