无法找到名称为"HammerManager"的内容。

9

我正在使用@angular-2.0.0-rc.5,@angular2-material 2.0.0-alpha.7-4和Angular-CLI 1.0.0-beta.11-webpack.2。

当我尝试编译时,会抛出一个错误,Cannot find name 'HammerManager'。请参见附图。

Errors

我找到了一些针对非webpack版本的Angular-CLI的解决方案,但没有针对webpack版本的。

有没有人用以上设置修复过这个问题?

3个回答

15

我遇到了类似的问题,所以我按照你的三个步骤进行了操作,但是在浏览器控制台中,我收到了错误信息“Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:3002/hammerjs”。我需要在systemjs.config.js或index.html中添加什么吗? - Sanket

12

您需要安装丢失的类型定义文件:

npm install @types/hammerjs --save-dev

然后在你的tsconfig.json中引用hammerjs类型声明文件:

"types": [
  ...,
  "hammerjs"
]

如果这还不够,也可以通过npm安装hammerjs本身:

npm i hammerjs

不起作用...仍然是同样的问题...我已经运行了npm install hammerjs --save-dev并在tsconfig.json中添加了@j2L4e提到的引用。 - microchip78
npm install @types/jammerjs --save-dev - j2L4e
你的项目使用的TypeScript版本是多少?运行 node_modules/.bin/tsc -v 命令。 - j2L4e
是的,我做了。只有额外的部分,就像我在答案中提到的那样,在 main.ts 中导入 'hammerjs'。 - microchip78
我看到你已经让它工作了。不知道为什么你需要 import 'hammerjs',但很高兴它能正常工作。祝你有美好的一天! - j2L4e
显示剩余2条评论

1
当你安装类型定义时,应该使用 --save-dev,但是在安装 hammerjs 本身时,应该使用 --save。你需要在生产环境中安装它。

取决于你正在做什么。如果你正在创建一个可以选择使用hammerjs的库(例如,可选包含手势支持),那么你需要通过在devDependencies中安装hammer来开发该库,并在optionalDependencies中声明它,以便向库的消费者提供提示。 - Dan Macak

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