【问题标题】:Cannot find module angular/animations找不到模块角度/动画
【发布时间】:2017-08-09 00:01:07
【问题描述】:

我在 angular2 中使用 webpack,当我尝试运行我的应用程序时出现错误提示

找不到模块“@angular/animations”

package.json

{
  "name": "angular-quickstart",
  "version": "1.0.0",
  "description": "QuickStart package.json from the documentation, supplemented with testing support",
  "scripts": {
    "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
    "e2e": "tsc && concurrently \"http-server -s\" \"protractor protractor.config.js\" --kill-others --success first",
    "lint": "tslint ./app/**/*.ts -t verbose",
    "lite": "lite-server",
    "pree2e": "webdriver-manager update",
    "test": "tsc && concurrently \"tsc -w\" \"karma start karma.conf.js\"",
    "test-once": "tsc && karma start karma.conf.js --single-run",
    "tsc": "tsc",
    "tsc:w": "tsc -w"
  },
  "keywords": [],
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@angular/common": "~2.4.0",
    "@angular/compiler": "~2.4.0",
    "@angular/core": "~2.4.0",
    "@angular/forms": "~2.4.0",
    "@angular/http": "~2.4.0",
    "@angular/platform-browser": "~2.4.0",
    "@angular/platform-browser-dynamic": "~2.4.0",
    "@angular/router": "~3.4.0",
    "angular-in-memory-web-api": "~0.2.4",
    "core-js": "^2.4.1",
    "rxjs": "5.0.1",
    "systemjs": "0.19.40",
    "zone.js": "^0.7.4"
  },
  "devDependencies": {
    "awesome-typescript-loader": "^3.1.2",
    "canonical-path": "0.0.2",
    "concurrently": "^3.1.0",
    "html-webpack-plugin": "^2.28.0",
    "http-server": "^0.9.0",
    "karma": "^1.3.0",
    "karma-chrome-launcher": "^2.0.0",
    "karma-cli": "^1.0.1",
    "karma-jasmine-html-reporter": "^0.2.2",
    "lite-server": "^2.2.2",
    "lodash": "^4.16.4",
    "primeng": "^4.0.0-rc.1",
    "protractor": "~4.0.14",
    "reflect-metadata": "^0.1.10",
    "rimraf": "^2.5.4",
    "tslint": "^3.15.1",
    "typescript": "~2.0.10",
    "typings": "^2.1.0",
    "webpack": "^2.2.1"
  },
  "repository": {},
  "main": "index.js"
}

我的 webpack.config.js 文件是

var htmlWebPack = require('html-webpack-plugin');

module.exports = {
    entry: "./app/main.ts",
    output: {
        path: 'dist',
        filename: "bundle.js"
    },
    module: {
        loaders: [
          {
              test: /\.tsx?$/,
              loader: 'awesome-typescript-loader'
          }
        ]
    },
    plugins: [
    new htmlWebPack({
        template: './index.html'
    })
    ]
};

当我运行 npm start 之类的命令时,出现上述错误。

我什至尝试使用这个命令安装 angular-animate

npm install angular-animate

这是我收到的错误消息

我也尝试使用命令卸载 angular-animate

npm 卸载角度动画

但这对我没有帮助。

【问题讨论】:

    标签: angular webpack angular-animations


    【解决方案1】:

    执行以下步骤使其工作:

    1. npm install @angular/animations@latest --save

    2. 从根 NgModule 中的“@angular/platform-b​​rowser/animations”导入“BrowserAnimationsModule”(没有这个,您的代码将编译并运行,但动画会触发错误)

    3. 在您的组件中使用来自新包的导入,如下所示 - “import { trigger, state, style, transition, animate } from '@angular/animations';”

    这对我有用。

    【讨论】:

      【解决方案2】:

      您在正确的轨道上,但刚刚接近!你可以在这个discussion here 中看到,动画是从核心中取出的。此外,连字符的名称显然正在被取消 - 所以角度动画现在是@angular/animations,就像@angular/angular-cli 变成了@angular/cli。

      因此,为了(希望)解决您的问题 - 您应该执行以下操作:

      在您的项目中更新到 Angular 4。为此,您需要运行以下命令:npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest --save 并且 您还需要使用 npm install typescript@latest --save

      更新 Typescript

      这应该可以解决问题。

      如果它没有成功,我建议检查你的 json 包,并确保你在所有核心方面以及现在独立的动画部分都达到了 4.0。然后,删除您的节点模块文件夹,清除缓存,并使用更新包运行全新安装,如下所示:

      >$  rm -rf node_modules
      >$  npm cache clear
      >$  npm install
      

      现在有点忙,有很多不同的人为核心功能集做出了很多更改和修复,然后 Angular 的其他部分正在赶上核心,所以我建议您以非常有条理的步骤谨慎地推进您正在进行的任何项目,以便您可以一一解决出现的问题(并且更容易找到/修复)。

      希望这会有所帮助!

      【讨论】:

      • 谢谢@TobySpeight,我第一次就应该想到这一点!我提出了目前我能想到的尽可能多的有用解决方案。
      【解决方案3】:

      @angular/animations 是在 4.0.0 版(候选发布版)中引入的。您需要更新到 angular4。

      【讨论】:

      • 将更新到 Angular 4 影响我的其他设置,即。组件和模块。还是卸载角度/动画会起作用?
      • angular 使用语义版本控制。当有一些重大变化时,他们会增加主要版本(2 到 4)。但是,它不像从 ng1 到 ng2 那样完全重写。删除动画模块或升级 - 两者都应该适合您。
      • 我已经用最新的尝试更新了问题,请看一下,谢谢你的帮助
      • 您的一个库依赖于 @angular4。哪一个?我会卸载那个库。
      【解决方案4】:

      你必须像这样导入角度动画模块:

      import { BrowserAnimationsModule } from '@angular/platform-browser/animations';import {trigger,state,style,animate,transition}from '@angular/animations';
      

      【讨论】:

      • @AnjanaSilva 希望它做到了:)
      【解决方案5】:

      看起来在 Angular 2 中这是核心的一部分,如 archived documentation 所示:

      import { Component, Input, trigger, state, style, transition, animate } from '@angular/core';

      【讨论】:

        【解决方案6】:

        我已经完成了这些步骤:

        https://github.com/mgechev/angular-seed/issues/1880#issuecomment-290557768

        我会引用:

        我从 2.0 升级到 4.0 时遇到了同样的问题。最后,我的 systemjs.config.js 中缺少以下内容:

        '@angular/动画': 'npm:@angular/animations/bundles/animations.umd.js',
        '@angular/动画/浏览器': 'npm:@angular/animations/bundles/animations-browser.umd.js',
        '@angular/平台浏览器/动画': 'npm:@angular/platform-b​​rowser/bundles/platform-b​​rowser-animations.umd.js',

        起初我有第一行和第三行 - 一切都开始工作 一旦我为@angular/animations/browser 添加了第二行。

        这对我有用,我可以看到大多数情况已修复。

        【讨论】:

        • 嗨,angular-cli 项目中的 systemjs.config.js 在哪里?谢谢
        • 对于 angular-cli 我认为它不存在。
        猜你喜欢
        • 2022-01-07
        • 2022-01-21
        • 2017-10-13
        • 1970-01-01
        • 1970-01-01
        • 2017-03-31
        • 1970-01-01
        • 2021-02-08
        • 1970-01-01
        相关资源
        最近更新 更多