在node.js中使用requirejs和amdefine生成未定义的错误

时间:2015-02-11 13:43:10

标签: javascript node.js requirejs amdefine

以简单的服务器运行:

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,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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

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