【发布时间】:2020-11-25 12:50:10
【问题描述】:
Ng serve 和 ng build --prod 命令工作正常,但是当我在 serve 上部署应用程序时,会出现以下错误:-
TypeError: o.Subject is not a constructor
at new e (vendor-esnext.js:1)
at Object.useFactory (vendor-esnext.js:1)
at Object.i [as factory] (vendor-esnext.js:1)
at Xo.hydrate (vendor-esnext.js:1)
at Xo.get (vendor-esnext.js:1)
at Jf.get (vendor-esnext.js:1)
at Object.get (vendor-esnext.js:1)
at Gn (vendor-esnext.js:1)
at Module.Sl (vendor-esnext.js:1)
at Mn.e.ɵfac [as factory] (vendor-esnext.js:1)
tsconfig.base.json
{"compilerOptions": {
"baseUrl": "",
"allowSyntheticDefaultImports": true,
"declaration": false,
"downlevelIteration": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"dom",
"es2017"
],
"module": "esnext",
"moduleResolution": "node",
"sourceMap": true,
"target": "ESNext",
"paths": {
"@angular/*": [
"node_modules/@angular/*"
]
}},"include": [
"src/**/*.ts",
"node_modules/ng4-fittext/*.d.ts"],"exclude": [],"compileOnSave": false,}
【问题讨论】:
-
我认为您需要检查
Subject的导入语句。它必须像import { Subject } from "rxjs/Subject";一样导入。您的项目包含来自其他地方的Subject的导入语句。 -
使用新的 angular10 版本,删除了 rxjs 兼容,因此应该从
import { Subject } from 'rxjs';导入Subject(而不是从rxjs/Subject) -
太棒了。我对
Angular 10 & Rxjs 6有了新的认识。感谢您的指正。 @PoulKruijt -
我已经使用了前面提到的导入。但我仍然遇到同样的错误。有什么想法吗?
-
您可以使用命令
ng serve --prod重现相同的内容。无需每次都创建构建来检查它。