模块未找到:错误:无法解析“hammerjs”

18

我通过ng init将我的Angular 2 CLI项目从1.0.0-beta.11-webpack.2更新到1.0.0-beta.11-webpack.8。我的项目使用了Angular 2.0.0-rc.5和Angular Material 2.0.0-alpha.7-4,但是当使用ng serve运行时,我遇到了以下错误:

ERROR in ./src/app/app.module.ts
Module not found: Error: Can't resolve 'hammerjs' in '/home/jan/src/fm-repos/fm-ui/src/app'
 @ ./src/app/app.module.ts 38:0-18
 @ ./src/app/index.ts
 @ ./src/main.ts
 @ multi main

ERROR in [default] /home/jan/src/fm-repos/fm-ui/node_modules/@angular2-material/core/gestures/MdGestureConfig.d.ts:4:39 
Cannot find name 'HammerManager'.

ERROR in [default] /home/jan/src/fm-repos/fm-ui/node_modules/@angular2-material/slide-toggle/slide-toggle.d.ts:67:19 
Cannot find name 'HammerInput'.

ERROR in [default] /home/jan/src/fm-repos/fm-ui/node_modules/@angular2-material/slider/slider.d.ts:50:19 
Cannot find name 'HammerInput'.

ERROR in [default] /home/jan/src/fm-repos/fm-ui/node_modules/@angular2-material/slider/slider.d.ts:52:24 
Cannot find name 'HammerInput'.
2个回答

39
为了解决这个 bug,暂时将 hammerjs 添加到你的项目中:
npm install hammerjs --save
npm install @types/hammerjs --save-dev

并在你的模块定义中导入:

/** TODO: remove when work-around is not needed*/
import 'hammerjs';


@NgModule({
  declarations: [
    AppComponent,
    HeaderComponent,
    // ...

1
就在这些步骤之后,出现了题目中的错误。这就是我来到这里的原因。 - holms
@godblessstrawberry 这太久远了,已经记不清了。 - holms

15

我遇到了问题

npm uninstall hammerjs --save

然后执行npm install hammerjs@latest解决了我的问题。

hammerjs最新安装版本为2.0.8,Angular版本为5.2.11。


1
将一个 Ionic 5 应用程序从 Angular 11 更新到 Angular 12 遇到了相同的问题。 这个解决方案解决了这个问题。 谢谢! - Greg B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接