我使用RequireJS加载Knockout Sortable (v1.10),它将jquery-ui (v1.12)作为依赖项。这两个都是通过bower添加的,并放在我的require配置中。但是,我遇到了一些奇怪的问题,需要错误地获取一些小部件的路径。
我的jquery-ui路径如下所示:
paths: {
...
'jquery-ui': '/lib/jquery-ui/jquery-ui',
...
// or the .min version like below:
// 'jquery-ui': '/lib/jquery-ui/jquery-ui.min',
}
jquery-ui加载没有任何问题,但是组件变得疯狂。我的控制台日志如下所示:
GET http://localhost:5000/lib/jquery-ui/jquery-ui/ui/widgets/draggable.js net::ERR_ABORTED
require.min.js:5 Uncaught Error: Script error for "jquery-ui/ui/widgets/draggable", needed by: knockout-sortable
http://requirejs.org/docs/errors.html#scripterror
at l (require.min.js:5)
at HTMLScriptElement.onScriptError (require.min.js:5)
对于3个不同的小部件,我得到了同样的错误。这些小部件位于/lib/jquery-ui/ui/widgets/*.js
,但RequireJS前置了第二个jquery-ui
目录。
Knockout排序表请求的资源如下:
require("jquery-ui/ui/widgets/sortable");
require("jquery-ui/ui/widgets/draggable");
require("jquery-ui/ui/widgets/droppable");
我已经尝试了所有的垫片和映射方式,但似乎都没有真正起作用,所以我有点迷茫。
同样值得注意的是,如果我使用jquery-ui.min,路径将变为:
http://localhost:5000/lib/jquery-ui/jquery-ui.min/ui/widgets/*.js
发布于 2017-12-21 01:11:24
经过一些修修补补,我想我需要稍微修改我的路径,如下所示:
paths: {
...
'jquery-ui': ['/lib/jquery-ui/jquery-ui.min'],
'jquery-ui/ui': ['/lib/jquery-ui/ui'],
...
}
事实证明,稍微具体一点的定义版本允许我覆盖正在发生的奇怪行为。当我使用另一个名为NestedSortable的包时,这个问题变得更加复杂。这个包还没有更新,不能处理jQuery UI 1.12+的新文件夹结构,所以我不得不创建一个新的包。
https://stackoverflow.com/questions/47910570
复制相似问题