在 node.js 中使用带有 amdefine 的 requirejs 产生未定义的错误

Using requirejs With amdefine in node.js Producing Undefined Errors

运行 一个简单的服务器:

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 is not a function at Url.parse (url.js:293:32)

但是,如果我删除行 define = require("amdefine")(module);,它突然就可以正常工作了。由于我想在我的项目中使用 amdefine,我该如何解决这个问题?

而不是更改全局变量 define,您想在每个要使用它的文件中创建一个同名的私有变量。而不是我在上面遇到问题的行,我应该放

if (typeof define !== 'function') { var define = require('amdefine')(module) }