【发布时间】:2017-12-15 11:55:16
【问题描述】:
我正在使用 Visual Studio 的 Angular 模板开发一个 Angular 2 应用程序。对于 Web 服务,我使用的是 ASP.NET Core 2。这是package.json 文件内容:
{
"name": "AngularWebApplication",
"private": true,
"version": "0.0.0",
"scripts": {
"test": "karma start ClientApp/test/karma.conf.js"
},
"dependencies": {
"@angular/animations": "5.1.0",
"@angular/cdk": "5.0.1",
"@angular/common": "5.1.0",
"@angular/compiler": "5.1.0",
"@angular/compiler-cli": "5.1.0",
"@angular/core": "5.1.0",
"@angular/forms": "5.1.0",
"@angular/http": "5.1.0",
"@angular/material": "5.0.1",
"@angular/platform-browser": "5.1.0",
"@angular/platform-browser-dynamic": "5.1.0",
"@angular/platform-server": "5.1.0",
"@angular/router": "5.1.0",
"@ngtools/webpack": "1.9.0",
"@types/webpack-env": "1.13.0",
"angular2-template-loader": "0.6.2",
"aspnet-prerendering": "^3.0.1",
"aspnet-webpack": "^2.0.1",
"awesome-typescript-loader": "3.2.1",
"bootstrap": "3.3.7",
"css": "2.2.1",
"css-loader": "0.28.4",
"es6-shim": "0.35.3",
"event-source-polyfill": "0.0.9",
"expose-loader": "0.7.3",
"extract-text-webpack-plugin": "2.1.2",
"file-loader": "0.11.2",
"html-loader": "0.4.5",
"isomorphic-fetch": "2.2.1",
"jquery": "3.2.1",
"json-loader": "0.5.4",
"mdn-polyfills": "^5.2.0",
"preboot": "4.5.2",
"raw-loader": "0.5.1",
"reflect-metadata": "0.1.10",
"rxjs": "5.5.5",
"style-loader": "0.18.2",
"to-string-loader": "1.1.5",
"typescript": "2.4.2",
"url-loader": "0.5.9",
"webpack": "2.5.1",
"webpack-hot-middleware": "2.18.2",
"webpack-merge": "4.1.0",
"zone.js": "0.8.12"
},
"devDependencies": {
"@types/chai": "4.0.1",
"@types/jasmine": "2.5.53",
"chai": "4.0.2",
"jasmine-core": "2.6.4",
"karma": "1.7.0",
"karma-chai": "0.1.0",
"karma-chrome-launcher": "2.2.0",
"karma-cli": "1.0.1",
"karma-jasmine": "1.1.0",
"karma-webpack": "2.0.3"
}
}
我添加了@angular/material,然后我需要将所有@angular 包更新到5.1.0 版,其中一些更新到5.0.1 版。我还将 rxjs 更新到 5.5.5 版。
当我启动应用程序时出现错误:
NodeInvocationException:由于错误,预渲染失败:错误: 找不到模块“rxjs/operators/take”
但是我在\node_modules\rxjs\operators\文件夹中找到了以下文件:
- take.d.ts
- take.js
- take.js.map
- takeLast.d.ts
- takeLast.js
- takeLast.js.map
- takeUntil.d.ts
- takeUntil.js
- takeUntil.js.map
- takeWhile.d.ts
- takeWhile.js
- takeWhile.js.map
问题是node_modules 中有几个文件我没有修改,导入如下:
import { take } from 'rxjs/operators/take'
我认为我不必修改 node_modules 文件夹中的这些文件以从路径 (from 'rxjs/operators') 中删除片段。
我也运行了npm install -g @angular/cli,但没有成功。
我该如何解决这个问题?
【问题讨论】:
-
您应该将其用作
import { take } from 'rxjs/operators'; -
@VansFannel 你能把修复的地方贴出来(确切的文件)吗?我觉得我已经把每个 ts 文件都填满了接受的答案,但没有运气。另外,我的 rsjx 没有“操作员”文件夹,只有“操作员”??????任何帮助将不胜感激。
-
@Mike_G 我不知道。我认为错误是由于将 Angular 4.2.5 更新为 Angular 5.1.0。我创建了一个空项目并将其更新到 Angular 6.0.0-beta4 没有任何问题,但如果我对以前的项目执行相同操作,我会得到相同的错误。我也删除了 node_modules 文件夹但没有成功。
-
@Aravind 我不会更改我尚未修改的结节中的导入。这不是我的问题的答案。
标签: angular rxjs angular-material