我一直在从事一个前端脚本比以前更多的项目,我决定使用 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 的工作方式让我感到困惑。我错过了什么?