Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Angular 10中的主题实例化错误_Angular_Typescript_Rxjs_Angular10 - Fatal编程技术网

Angular 10中的主题实例化错误

Angular 10中的主题实例化错误,angular,typescript,rxjs,angular10,Angular,Typescript,Rxjs,Angular10,我有一个角度应用程序,它可以通过ng service正常工作。应用程序还可以通过ng build--prod正确构建,但当我在浏览器中运行生成的源代码时,会出现以下错误: TypeError: $m.Subject is not a constructor at new e (error-handling.service.ts:8) at core.js:21140 at Rs (core.js:21136) at Os (core.js:21075) a

我有一个角度应用程序,它可以通过
ng service
正常工作。应用程序还可以通过
ng build--prod
正确构建,但当我在浏览器中运行生成的源代码时,会出现以下错误:

TypeError: $m.Subject is not a constructor
    at new e (error-handling.service.ts:8)
    at core.js:21140
    at Rs (core.js:21136)
    at Os (core.js:21075)
    at Gs.get (core.js:21628)
    at pu (core.js:21997)
    at du (core.js:21876)
    at su (core.js:21753)
    at Xd (core.js:30266)
    at Yd (core.js:30175)
    at Object.dh [as createRootView] (core.js:30688)
    at Ns.create (core.js:21357)
    at io.create (core.js:19158)
    at e.bootstrap (core.js:28031)
    at core.js:27742
    at Array.forEach (<anonymous>)
    at e._moduleDoBootstrap (core.js:27742)
    at core.js:27712
    at l.invoke (zone-evergreen.js:364)
    at Object.onInvoke (core.js:27149)
    at l.invoke (zone-evergreen.js:363)
    at i.run (zone-evergreen.js:123)
    at zone-evergreen.js:857
    at l.invokeTask (zone-evergreen.js:399)
    at Object.onInvokeTask (core.js:27137)
    at l.invokeTask (zone-evergreen.js:398)
    at i.runTask (zone-evergreen.js:167)
    at m (zone-evergreen.js:569)
在我将项目升级到10(也升级了TypeScript)之后,代码在Angular 9上运行良好,但它已停止工作。
为什么它通过
ng-serve
工作并在生产环境中运行时崩溃,这让人有点困惑。另外,为什么在编译过程中没有捕获到此错误


我的项目禁用了Ivy。

问题肯定是您导入的<代码>主题需要从
rxjs
导入

import { Subject } from "rxjs";
有一个完整的
rxjs compat
模块,甚至允许这样的操作。我敢肯定,所有这些向后兼容性支持都已被放弃。这基本上来自RXJSV5。我猜你现在正在使用RxJSV7,他们肯定会把它放在那里


你可以阅读更多关于这方面的内容。您可以看到,
Subject
需要直接从
rxjs
导入。如果您的Linter在抱怨,那么这些规则确实需要更新,因为rxjs v6已经发布两年多了

Subject=new Subject()从“rxjs/Subject”导入{Subject}?我通常看到它直接来自
rxjs
,就像这样:
import{Subject}来自“rxjs”@micronyks-否change@BizzyBob-从
rxjs
导入被列入黑名单,Linter对此表示不满。我的代码在以前的Angular版本中运行良好,所以我认为这不是问题所在。看来你是对的。实际上,我很惊讶,因为我认为从
rxjs
导入是不好的,因为它导入了所有内容,而
rxjs/Subject
只导入了生成较小捆绑包的子集。