找不到模块角度/动画

Posted

技术标签:

【中文标题】找不到模块角度/动画【英文标题】: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 卸载角度动画

但这对我没有帮助。

【问题讨论】:

【参考方案1】:

执行以下步骤使其工作:

    npm install @angular/animations@latest --save

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

    在您的组件中使用来自新包的导入,如下所示 - “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,transitionfrom '@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 我认为它不存在。

以上是关于找不到模块角度/动画的主要内容,如果未能解决你的问题,请参考以下文章

找不到模块角度

角度:发生未处理的异常:找不到模块'webpack'?

找不到角度模块

错误:找不到模块'@ckeditor/ckeditor5-build-classic'角度9的声明文件

从 5 到 6 的角度迁移后无法构建 - 找不到模块“打字稿”

基本角度应用程序无法运行,错误模块构建失败:找不到模块../@angular-devkit/src/babel/X