在angular 6中找不到HammerJS

在angular 6中找不到HammerJS,angular,angular-material,hammer.js,Angular,Angular Material,Hammer.js,我在我的项目中使用角度材质。我收到以下警告: 找不到HammerJS。某些角材料组件可能 工作不正常 无法绑定“longpress”事件 因为Hammer.JS没有加载,也没有自定义加载程序 指定的 我知道这是这个的复制品 他们在答复中提到: 我们必须将“^2.0.8”添加到package.json文件中的依赖项中 导入'hammerjs/hammer'在polyfills.ts文件中 在我的情况下,一切都很好,但我还是得到了同样的警告 浏览器控制台。有两种方法可以解决此问题: 将(主)导入包含

我在我的项目中使用角度材质。我收到以下警告:

找不到HammerJS。某些角材料组件可能 工作不正常

无法绑定“longpress”事件 因为Hammer.JS没有加载,也没有自定义加载程序 指定的

我知道这是这个的复制品

他们在答复中提到:

  • 我们必须将
    “^2.0.8”
    添加到package.json文件中的
    依赖项中
  • 导入
    'hammerjs/hammer'polyfills.ts文件中
  • 在我的情况下,一切都很好,但我还是得到了同样的警告
    浏览器控制台。

    有两种方法可以解决此问题:

  • 将(主)导入包含在主模块的文件中或
    polyfills.ts

    导入“hammerjs”;
    
  • 或者将CDN中的脚本包含到
    index.html
    文件中:

    
    

  • 使用angular6,您可以在angular.json文件的节点_模块中包含hammerjs路径

    表示angular.json文件的用途是

    工作区中所有项目的CLI配置默认值,包括CLI使用的构建、服务和测试工具(如TSLint、Karma和量角器)的配置选项。有关详细信息,请参见角度工作空间配置

    可以在脚本列表中包括hammerjs节点模块路径。请参见下面的示例:

    “项目”:{
    “演示”:{
    “根”:“,
    “sourceRoot”:“src”,
    “项目类型”:“应用程序”,
    “前缀”:“应用程序”,
    “示意图”:{},
    “建筑师”:{
    “构建”:{
    “生成器”:“@angular devkit/build angular:browser”,
    “选择”:{
    “outputPath”:“dist/demo”,
    “索引”:“src/index.html”,
    “main”:“src/main.ts”,
    “polyfills”:“src/polyfills.ts”,
    “tsConfig”:“src/tsConfig.app.json”,
    “资产”:[
    “src/favicon.ico”,
    “src/资产”,
    “src/manifest.json”
    ],
    “风格”:[
    “src/styles.css”
    ],
    “脚本”:[
    “node_modules/hammerjs/hammer.min.js”使用安装

    npm install --save hammerjs
    

    安装后,将其导入应用程序的入口点(例如src/main.ts)


    项目全球级添加hammer js

    "scripts": [
                  "node_modules/hammerjs/hammer.min.js" <- add path to hammerjs
                ]
    

    对于角度材质的新版本,安装材质时只需运行

    ng add @angular/material
    
    它会问你这样的问题

    为手势识别设置HammerJS

    您应该回答“Y”,它会自动为您配置HammerJS


    角度材料安装指南:

    你能添加一些演示/代码来重现这个问题吗?实际上我试图给stackblitz链接。当我尝试使用stackblitz时,它没有显示这个警告。在这里添加评论?我有很多组件,我找不到它显示这个警告的组件。我应该发布
    package.json吗文件?
    import'hammerjs';
    解决了我的错误,非常感谢,实际上之前我已经在主模块文件中导入了(hammerjs),如
    import{}从“hammerjs”;
    。这是错误的吗???@PrashanthGH不。只导入模块本身。该语法不会导入任何用于项目的内容。但是,导入模块(可能)会导入所有模块。这是有效的,请注意,必须停止并重新启动项目才能获取此文件。
    "scripts": [
                  "node_modules/hammerjs/hammer.min.js" <- add path to hammerjs
                ]
    
    import * as Hammer from 'hammerjs';
    
    ng add @angular/material