Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 离子4.8中未定义全局、缓冲区和过程_Javascript_Typescript_Ionic4_Angular8 - Fatal编程技术网

Javascript 离子4.8中未定义全局、缓冲区和过程

Javascript 离子4.8中未定义全局、缓冲区和过程,javascript,typescript,ionic4,angular8,Javascript,Typescript,Ionic4,Angular8,我试图在Angular 8-4应用程序中使用外部js npm库,我收到了 ERROR Error: Uncaught (in promise): ReferenceError: global is not defined 我试图通过在polyfill.ts中插入以下代码来解决此问题: (window as any).global = window; import * as buffer from 'buffer'; window['buffer'] = buffer; import *

我试图在Angular 8-4应用程序中使用外部js npm库,我收到了

ERROR Error: Uncaught (in promise): ReferenceError: global is not defined
我试图通过在polyfill.ts中插入以下代码来解决此问题:

(window as any).global = window;
 import * as buffer from 'buffer';
 window['buffer'] = buffer;
 import * as process from 'process';
 window['process'] = process;
当我尝试使用“ionic serve”运行ionic应用程序时,我收到一个运行时错误:

index.js:43 Uncaught ReferenceError: global is not defined
    at Object../node_modules/node-libs-browser/node_modules/buffer/index.js (index.js:43)
    at __webpack_require__ (bootstrap:84)
    at Module../src/polyfills.ts (polyfills.ts:1)
    at __webpack_require__ (bootstrap:84)
    at Object.1 (zone-flags.ts:5)
    at __webpack_require__ (bootstrap:84)
    at checkDeferredModules (bootstrap:45)
    at Array.webpackJsonpCallback [as push] (bootstrap:32)
    at polyfills.js:1
...
ERROR Error: Uncaught (in promise): ReferenceError: global is not defined
ReferenceError: global is not defined
    at Object../node_modules/stream-http/lib/capability.js (capability.js:1)
    at __webpack_require__ (bootstrap:84)
    at Object../node_modules/stream-http/lib/request.js (request.js:1)
    at __webpack_require__ (bootstrap:84)
    at Object../node_modules/stream-http/index.js (index.js:1)
    at __webpack_require__ (bootstrap:84)
    at Object../node_modules/rss-parser/lib/parser.js (parser.js:2)
    at __webpack_require__ (bootstrap:84)
    at Object../node_modules/rss-parser/index.js (index.js:3)
    at __webpack_require__ (bootstrap:84)
    at resolvePromise (zone-evergreen.js:797)
    at resolvePromise (zone-evergreen.js:754)
    at zone-evergreen.js:858
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:34182)
    at ZoneDelegate.invokeTask (zone-evergreen.js:390)
    at Zone.runTask (zone-evergreen.js:168)
    at drainMicroTaskQueue (zone-evergreen.js:559)

有什么建议吗?

原始答案

Angular是客户端的框架。运行时目标是浏览器。您不能在那里使用像
process
这样的库,因为这些库仅在运行nodejs进程时可用

您很可能希望将应用程序分为客户端和服务器端

rss解析器解决方案

正如您在评论中提到的,所讨论的库是
rss解析器
。如上所述,
rss解析器
在使用绑定器时当前无法正确使用angular。很可能是因为

解决方案是使用库附带的预绑定版本。为此,将预先打包的版本添加到
angular.json
中,并添加到
architects
构建
部分的
脚本
数组中
RSSReader
现在在您的
窗口中的对象中全局可用,可以如下使用:

从'@angular/core'导入{Component};
//这告诉TypeScript,您知道这将在运行时全局可用。
//不幸的是,RSSParser没有TS声明,所以您必须自己使用任何类型或创建更具体的类型
声明常数:任何;
@组成部分({
选择器:“我的应用程序”,
templateUrl:“./app.component.html”,
样式URL:['./app.component.css']
})   
导出类AppComponent{
标题:字符串=“”;

项目:数组。

原始答案

Angular是客户端的框架。运行时目标是浏览器。您不能在那里使用
process
之类的库,因为这些库仅在运行nodejs进程时可用

您很可能希望将应用程序分为客户端和服务器端

rss解析器解决方案

正如您在评论中提到的,所讨论的库是
rss parser
。如前所述,
rss parser
在使用绑定器时当前无法正确使用angular。很可能是由于

解决方案是使用库附带的预打包版本。为此,请将预打包版本添加到
angular.json
,添加到
architects
build
部分的
脚本
数组中。
RSSReader
现在在
窗口中全局可用,并且可以e是这样使用的:

从'@angular/core'导入{Component};
//这告诉TypeScript,您知道这将在运行时全局可用。
//不幸的是,RSSParser没有TS声明,所以您必须自己使用任何类型或创建更具体的类型
声明常数:任何;
@组成部分({
选择器:“我的应用程序”,
templateUrl:“./app.component.html”,
样式URL:['./app.component.css']
})   
导出类AppComponent{
标题:字符串=“”;

项:数组。

我需要使用的库是rss解析器,我需要定义缓冲区,因为缓冲区也未定义。@Alessandra用一个工作示例和一个解释更新了我的答案。我需要使用的库是rss解析器,我需要定义缓冲区,因为缓冲区也未定义。@Alessandra用一个工作示例和一个解释更新了我的答案国家。