0

単純なサーバーを次のように実行します。

requirejs = require("requirejs");
if (typeof define !== "function") {
    define = require("amdefine")(module);
}

requirejs.config({
    nodeRequire: require,
    baseUrl: __dirname + "/../.."
});

requirejs([
    "url"
], function (
    url
) {
    console.log(url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash"));
});

次のエラーが発生します。

TypeError: undefined は Url.parse の関数ではありません (url.js:293:32)

ただし、行を削除するとdefine = require("amdefine")(module);、すべてが突然正常に機能します。プロジェクトで使用amdefineしたいのですが、どうすれば修正できますか?

4

1 に答える 1

0

グローバル変数を変更する代わりに、define使用する各ファイルに同じ名前のプライベート変数を作成する必要があります。上記で問題があった行の代わりに、

if (typeof define !== 'function') { var define = require('amdefine')(module) }
于 2015-02-11T13:51:10.020 に答える