加载angular 4和node-rdkafka和kafka-node的问题

我对web前端开发很陌生,在加载kafka客户端库的时候,我在JS / Node / Angular世界有些迷茫。 我考虑了两个选项来访问我的kafka集群:node-rdkafka和kafka-node。 但是,我不认为我的问题在于他们,似乎是缺乏有关JS和/或节点或什么的知识。 我会解释实际问题,最后回到这个概念。

这是我第一次进入JS / Node / Angular世界,所以我的知识还是非常有限的,请忍受任何noob错误。 我开始使用angular度cli(1.2.3)来构build我的组件,服务等。一切都很好,直到我试图加载node-rdkafka:自述文件指示我使用“require”而不是“import”,而那不是find。

通过一些研究,我设法通过改变typings.d.ts文件来得到“需要”的工作(我认为)是这样的:

declare var module: NodeModule; interface NodeModule { id: string; } declare var require: NodeRequire; 

和tsconfig.app.json包含这个:

 "types": [ "node" ] 

在compilerOptions里面。

应用程序编译和“const kafka = require('node-rdkafka')”开始加载库。 但是,它的一个依赖关系中存在一个错误,即节点绑定。 我发现已经有一个修复,所以我改变了它的版本到最新的提交,只是为了遇到一个新的错误已经报告,但从来没有回答:

https://github.com/TooTallNate/node-bindings/issues/34

我也收到以下警告:

 WARNING in ./~/bindings/bindings.js 81:22-40 Critical dependency: the request of a dependency is an expression WARNING in ./~/bindings/bindings.js 81:43-53 Critical dependency: the request of a dependency is an expression 

我试图查看节点绑定代码,发现它需要'fs'和'path',并且这些要求在我的情况下返回“undefined”。 由于现在有人使用node-rdkafka而没有问题,所以我认为这个问题可能与我的环境有关,但是我几个小时就浪费了这个function而没有成功。

然后,我尝试使用kafka-node,也陷入了问题。 首先,这是依赖于“应该”,而不是由npm安装的“BufferMaker”依赖,我不知道为什么。 我使用–save-dev手动安装了所需的npm版本,然后编译了自己的代码,但是出现了这些警告:

 WARNING in ./~/optional/optional.js 6:11-26 Critical dependency: the request of a dependency is an expression WARNING in ./~/node-zookeeper-client/lib/jute/index.js 771:20-47 Critical dependency: the request of a dependency is an expression 

现在,我在运行时发现这个错误,互联网上没有其他人似乎有:

 Uncaught Error: Cannot find module "." at webpackMissingModule (index.js:771) at Object.<anonymous> (index.js:771) at Object.../../../../node-zookeeper-client/lib/jute/index.js (index.js:781) at __webpack_require__ (bootstrap 8ee5092…:54) at Object.<anonymous> (index.js:24) at Object.../../../../node-zookeeper-client/index.js (index.js:917) at __webpack_require__ (bootstrap 8ee5092…:54) at Object.<anonymous> (zookeeper.js:3) at Object.../../../../kafka-node/lib/zookeeper.js (zookeeper.js:474) at __webpack_require__ (bootstrap 8ee5092…:54) 

我似乎没有可能每个人都有这些问题,因为只有less数人抱怨节点rdkafka问题,我找不到任何人与卡夫卡节点的问题。

所以,除了需要一个解决scheme来访问一个使用JS的kafka集群,我真正的问题是:Angular 4或Angular CLI与使用require的代码之间是否存在不兼容? 我是否将遗留代码与当前代码或类似的东西混合?

任何指向解决scheme的指针都将非常受欢迎。 提前致谢。