我有一些同构的 JavaScript。我在客户端使用 RequireJS。
(function() {
'use strict';
function wrapper(require) {
var MyDep = require('my-dependency');
return function MyExportedFunction() {
// ...
};
}
if ((typeof exports === 'object') && module) {
module.exports = wrapper(require); // CommonJS
} else if ((typeof define === 'function') && define.amd) {
define(function(require) {
/**
* I need to `require` dependencies
* in here for them to be available inside
* the wrapper function :(
*/
require('my-dependency');
return wrapper(require);
}); // AMD
}
}());
有没有办法避免必须将require
语句放置在wrapper
函数调用之前?
如果我省略该require
语句,RequireJS 会抱怨尚未为上下文加载依赖项。
我认为这是 RequireJS 提前解析和识别所需依赖项的能力的一个不可逾越的限制。