Aurelia导入库后的库

替代品

因此,我对Aurelia和JavaScript导入语法有点陌生,并且正在开发需要jQuery UIdraggable的应用程序droppable由于这些小部件无法在移动设备上运行,因此我需要使用jQuery UI Touch Punch库。

我遇到的问题是以下控制台错误:

Uncaught TypeError: Cannot read property 'mouse' of undefined

当在jQuery UI之前加载jQuery UI Touch Punch库时,显然会出现它

这是我的aurelia.json文件设置方式:

"dependencies": [
      // ....
      {
        "name": "jquery",
        "path": "../node_modules/jquery/dist/",
        "main": "jquery"
      },
      {
        "name": "jquery-ui",
        "path": "../node_modules/jquery-ui-dist/jquery-ui",
        "deps": ["jquery"]
      },
      {
        "name": "touch-punch",
        "path": "../node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch",
        "deps": ["jquery-ui"]
      }
    ]

我的视图模型中有这些导入:

import 'jquery-ui';
import 'touch-punch';

由于某些原因,一切正常,但我仍然遇到该控制台错误。

我如何确定jQuery Touch Punch库是否已在jQuery UI之前加载,如果可以,我如何确定在它之后加载

法比奥·卢兹(Fabio Luz)

似乎正在发生的事情是,模块加载器正在同时导入两个脚本并touch-punch赢得了比赛,因此,它首先被加载。我相信这个问题是Aurelia无法控制的。

尽管如此,jquery-ui-touch-punch它并不是为模块化系统而设计的。导入它的最佳方法是使用<script>标签或将其添加到包中。考虑到这jquery-ui-touch-punch取决于jquery-ui哪个jquery,变通办法是将所有这些都放在前面。像这样:

"name": "vendor-bundle.js",
"prepend": [
  "node_modules/bluebird/js/browser/bluebird.core.js",
  "node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird.js",
  "node_modules/jquery/dist/jquery.js",
  "node_modules/jquery-ui-dist/jquery-ui.js",
  "node_modules/jquery-ui-touch-punch/jquery.ui.touch-punch.js",
  "node_modules/requirejs/require.js"
],
"dependencies": [
   ...
]

然后,从中删除它们dependencies并删除import语句。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章