私はいくつかの同形の 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 は依存関係がまだコンテキストにロードされていないと文句を言います。
これは、required された依存関係を事前に解析して識別する RequireJS の能力の克服できない制限であると思います。