使用RequireJS与Jquery.hammer和Hammer 2.0.2

3

我刚更新到 Hammer 2.0.2,并添加了 jquery.hammer 插件,但在项目中无法引用它。

目前,我只得到 'Uncaught ReferenceError: Hammer is not defined'。

当我尝试仅引用 Hammer 时,在控制台中无法访问 Hammer。

这是我的 require 配置中的重要内容。

require.config({
  paths: {
    '$': '../components/jquery/jquery',
    'jquery': '../components/jquery/jquery',
    'hammer': '../components/hammerjs/hammer',
    'jquery-hammer': '../components/jquery-hammer/jquery.hammer'
  },
  shim: {
    $: {
      exports: '$'
    },
    jquery: {
      exports: '$'
    },
    'hammer': {
      exports: 'Hammer'
    },
    'jquery-hammer': {
      deps:['$','hammer']
    }
  }
});

我也遇到了同样的问题。我猜“Hammer”没有被正确导出。在上一个版本中,我曾经在我的require回调函数中使用Hammer = require("Hammer");来访问它。但现在在插件中找不到它了。也许尝试之后再加载它? - StackHola
2个回答

0
  1. 安装 npm i hammerjs
  2. 添加到 package.json ---> "hammerjs": "^2.0.8", "@types/hammerjs": "^2.0.36", "types": [ "hammerjs", "jasmine", "jasminewd2", "node", "q", "selenium-webdriver" ]
  3. main.ts 文件中添加 import 'hammerjs';
  4. 如果仍然有问题,请使用: npm --force npm install

0

这种方法对我有用,从您的路径和shim中删除jquery-hammer

require(["Hammer", "jquery"], function(){
Hammer = require("Hammer");
jQuery = require("jquery");

  require([
        "../components/jquery-hammer/jquery.hammer", //or the path of your jquery.hammer
        //Any other lib
        ], function(){
            //your previous init code
        }
});

它的作用是在调用jquery.hammer插件之前强制设置jQuery和Hammer变量。

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