【问题标题】:import {take} from 'rxjs/operators/take' but 'rxjs/operators/take' folder doesn't exist从 'rxjs/operators/take' 导入 {take} 但 'rxjs/operators/take' 文件夹不存在
【发布时间】: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


【解决方案1】:

对我来说,这是由于角度版本不匹配。 运行

sudo npm install -g @angular/cli

然后构建,它对我有用。

【讨论】:

    【解决方案2】:

    您需要在服务/组件中将其用作import { take } from 'rxjs/operators'

    import { take } from 'rxjs/operators';
    

    【讨论】:

    • 正如@VansFannel 评论的那样,rxjs 没有运营商文件夹,我只看到运营商文件夹。你能帮忙吗?
    • 我必须将 rxjs 的版本从 5.4 降级到 5.3,然后它允许 'rxjs/operators'
    • 我不认为这解决了我的问题。服务/组件在哪里? rxjs 没有名为operators 的文件夹,我不认为将导入添加到不存在的文件夹会解决这个问题。
    • 你需要安装rxjs
    • @Sajeetharan rxjs 已安装。
    【解决方案3】:

    根据@Kirk-Larkin 的answer on another SO post,:

    安装更新版本后,您需要让 webpack 以正确的顺序重新构建。您可以通过项目的解决方案级重建来实现这一点,但如果没有,您可以运行以下命令来强制 webpack 正确构建:

    webpack --config webpack.config.vendor.js

    webpack

    加上将rxjs 升级到v5.5.0,为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 1970-01-01
      • 2019-10-14
      • 2022-06-26
      • 2019-11-15
      • 1970-01-01
      • 2019-03-06
      • 2019-06-05
      • 2016-10-03
      相关资源
      最近更新 更多