32

我在 angular2 中使用 webpack,当我尝试运行我的应用程序时,我收到一条错误消息

找不到模块“@angular/animations”

包.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 安装角度动画

这是我收到的错误消息

在此处输入图像描述

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

npm卸载角度动画

但这对我没有帮助。

4

6 回答 6

66

执行以下步骤以使其工作:

  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'; ”

这对我有用。

于 2017-04-08T07:19:07.487 回答
6

你在正确的轨道上,但刚刚接近!您可以在此处的讨论中看到,动画是从核心中取出的。此外,连字符的名称显然正在被取消 - 所以角度动画现在是@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并且您还需要使用以下命令更新Typescriptnpm install typescript@latest --save

这应该够了吧。

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

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

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

希望这可以帮助!

于 2017-03-27T02:59:59.167 回答
2

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

于 2017-03-17T12:26:59.670 回答
2

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

import { BrowserAnimationsModule } from '@angular/platform-browser/animations';import {trigger,state,style,animate,transition}from '@angular/animations';
于 2017-09-08T09:15:16.107 回答
1

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

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

于 2017-03-25T01:35:34.170 回答
0

我已经完成了以下步骤:

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

我会引用:

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

'@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
'@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js ',
'@angular/platform-b​​rowser/animations': 'npm:@angular/platform-b​​rowser/bundles/platform-b​​rowser-animations.umd.js',

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

这对我有用,我可以看到大多数情况都是固定的。

于 2017-05-18T01:01:25.443 回答