我一直在研究一个比我以前拥有更多前端脚本的项目,我决定使用RequireJS来保持它的整洁。在彻夜难眠之后,我仍然遇到一些问题,其中某些依赖关系似乎在事后加载。
例如,Sammy需要jQuery才能工作。刷新我的应用程序会导致“Sammy,函数未定义”的错误。是否在加载jQuery之前执行Require函数?
需要配置:
require.config({
paths: {
'jquery': 'vendor/jquery.2.min',
'sammy': 'vendor/sammy',
},
shim: {
'jquery': {
debs: [],
exports: '$'
},
'sammy': {
debs: ['jquery'],
exports: 'Sammy'
}
...
至于我的导航:
define([
'jquery',
'sammy'
], function($, Sammy) {
return Sammy(function() {
...
在大约10%的测试中,在点击Sammy功能后,应用程序会出现以下情况:
Uncaught ReferenceError: jQuery is not defined sammy.js:2120
Uncaught TypeError: undefined is not a function
RequireJS的工作方式使我迷惑。我错过了什么?
答案 0 :(得分:10)
您的配置中有拼写错误,正确的属性名称将是deps
,而不是documentation中指定的debs
。
'jquery': {
deps: [],
exports: '$'
},
'sammy': {
deps: ['jquery'],
exports: 'Sammy'
}