0

私はいくつかの同形の 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 の能力の克服できない制限であると思います。

4

1 に答える 1