我试图在我的第一个单页javascript应用程序中使用requireJS来管理依赖项。我以前从未使用过requireJS,我正为一些我认为是退出基本功能的东西而苦苦挣扎。
我的项目使用knockoutJS,还有一个名为19.ckout-sortable的插件,它为jquery 'sortable‘插件提供了剔除绑定。当我只加载jquery、淘汰赛和其他没有requireJS的东西时,一切都很好。
我的require main.js如下所示:
require.config({
baseUrl: '/Scripts',
paths: {
jQuery: 'jquery-2.1.3',
jQueryUI: 'jquery-ui-1.10.2',
knockout: 'knockout-3.3.0',
knockoutSortable: 'knockout-sortable',
AppViewModel: 'app/AppViewModel'
},
shim: {
"jQueryUI": {
export: "$",
deps: ['jQuery']
},
"knockoutSortable": {
export: ["ko"],
deps: ['jQuery','jQueryUI']
},
}
});
require(['jQuery', 'jQueryUI', 'knockoutSortable', 'AppViewModel'], function ($, ui, ko, AppViewModel) {
ko.applyBindings(new AppViewModel());
});但是我的javascript中有一个错误声明:
GET http://localhost:8020/Scripts/jquery-ui/draggable.js
require.js:166 Uncaught Error: Script error for: jquery-ui/draggable
http://requirejs.org/docs/errors.html#scripterror
require.js:1910 GET http://localhost:8020/Scripts/jquery-ui/sortable.js
require.js:166 Uncaught Error: Script error for: jquery-ui/sortable
http://requirejs.org/docs/errors.html#scripterror我猜这个淘汰制--可排序--不知为何需要依赖jquery.ui/sortable.js,但是该文件并不存在,因为jquery.ui只是一个文件!
这个页面https://learn.jquery.com/jquery-ui/environments/amd/还建议我将jquery文件组织成某种文件夹结构,但是我只有一个jquery文件,所以我不知道如何做到这一点。
顺便说一句:我在visual中使用的是ASP.NET MVC 5,这就是为什么我的脚本在“Script”文件夹中而不是在“JS”文件夹中。我已经使用NuGet更新了jquery、jquery和冲击力到最新的版本,并且我已经手动升级到版本0.11,因为它是4天前发布的,在nuget上还没有提供。
有人知道这是怎么回事吗?怎么解决?
发布于 2015-05-03 16:55:52
您可以在安装jquery 保龄球或下载来自github时获得AMD模块。
在您有您需要的文件之后,删除jquery的shim,因为这应该只用于非AMD脚本。
淘汰制-排序也是一个AMD模块,所以你不需要任何西姆配置。
https://stackoverflow.com/questions/30014557
复制相似问题