我在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一样运行命令时,我得到了如上所述的错误。
更新1
我甚至尝试使用此命令安装angular-animate
卸载angular-animatenpm install angular-animate
npm uninstall angular-animate
但它对我没有帮助:(
答案 0 :(得分:35)
执行以下步骤以使其正常工作:
npm install @ angular / animations @ latest --save
从根NgModule中的“@ angular / platform-browser / animations”导入“BrowserAnimationsModule”(如果没有这个,您的代码将编译并运行,但动画将触发错误)
在您的组件中,使用从新包中导入,例如“@ angular / animations”中的“import {trigger,state,style,transition,animate}”;“
这对我有用。
答案 1 :(得分:5)
你是在正确的轨道上,但只是关闭!您可以在此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的其他部分被核心所占据,所以我会建议您以非常有条理的步骤仔细研究您正在进行的任何项目,这样您就可以解决逐个出现的问题(并且更容易找到/修复)。
希望这有帮助!
答案 2 :(得分:2)
@ angular / animimations是在4.0.0版(候选版本)中引入的。您需要更新到angular4。
答案 3 :(得分:1)
在Angular 2中看起来这是核心的一部分,如archived documentation所示:
import {
Component,
Input,
trigger,
state,
style,
transition,
animate
} from '@angular/core';
答案 4 :(得分:1)
您必须导入角度动画模块,如下所示:
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';import {trigger,state,style,animate,transition}from '@angular/animations';
答案 5 :(得分:0)
我已经完成了这个步骤:
https://github.com/mgechev/angular-seed/issues/1880#issuecomment-290557768
我会引用:
我有同样的问题从2.0升级到4.0。最后,我从systemjs.config.js中错过了以下内容:
'@角/动画': 'NPM:@角/动画/捆绑/ animations.umd.js',
'@角/动画/浏览器': 'NPM:@角/动画/捆绑/动画-browser.umd.js',
“@角/平台的浏览器/动画”: 'NPM:@角/平台的浏览器/捆绑/平台的浏览器的animations.umd.js',起初我有第一线和第三线 - 一切都开始工作了 一旦我为@ angular / animations / browser添加了第二行。
这对我有用,我可以看到修复了大多数情况。