当我试图使用RequireJS包含log4javascript时,它是未定义的

当我试图使用RequireJS包含log4javascript时,它是未定义的,requirejs,log4javascript,Requirejs,Log4javascript,当我使用requirejs(v2.1.13)包含log4javascript(v1.4.10)时,js变量log4javascript未定义,但正如我在chrome网络控制台中看到的,log4javascript.js已成功加载 以下是我的requirejs配置: requirejs.config({ 'baseUrl': 'resources/js', 'paths': { 'angular': 'libs/angularjs/angular', 'jquery' : 'lib

当我使用requirejs(v2.1.13)包含log4javascript(v1.4.10)时,js变量log4javascript未定义,但正如我在chrome网络控制台中看到的,log4javascript.js已成功加载

以下是我的requirejs配置:

requirejs.config({
'baseUrl': 'resources/js',
'paths': {
    'angular': 'libs/angularjs/angular',
    'jquery' : 'libs/jquery/jquery-2.1.1.min',
    'bootstrap' : 'libs/bootstrap/bootstrap',
    'log4javascript': 'libs/log4javascript/log4javascript_uncompressed'
},
'shim' : {
    'angular' : {'exports' : 'angular', deps: ['jquery']},
    'jquery': {'exports' : 'jquery'},
    'bootstrap': {'exports' : 'bootstrap', deps: ['jquery']}
}});
sine1.4.10log4javascript应该支持AMD,所以我不需要添加垫片

我不明白我做错了什么。请帮忙

UPD:版本1.4.10中对AMD的支持似乎有问题,因为当我在“log4javascript_uncompressed.js”中注释掉以下几行并添加了垫片时,一切都变好了:

/*
if (typeof define == "function" && define.amd) {
    // AMD. Register as an anonymous module.
    define(factory);
} else if (typeof module != "undefined" && typeof exports == "object") {
    // Node/CommonJS style
    module.exports = factory();
} else {
    // No AMD or CommonJS support so we place log4javascript in (probably) the global variable
*/
    root.log4javascript = factory();
//}
当我使用requirejs(v2.1.13)包含log4javascript(v1.4.10)时,js变量log4javascript未定义,但正如我在chrome网络控制台中看到的,log4javascript.js已成功加载

这正是如果一切都很好的话会发生的事情。看看你注释掉的代码。当log4javascript检测到AMD加载程序时,它不会将名为
log4javascript
的变量泄漏到全局空间中。只有当它既没有检测到AMD加载程序,也没有检测到它正在节点中运行时,它才会泄漏该变量

如果使用log4javascript的代码都在AMD模块中,那么访问log4javascript的正确方法是将其作为依赖项包含在
define
require
调用中。例如,
require(['foo','log4javascript'],function(foo,log4javascript){…})

如果您必须使用希望在全局空间中存在
log4javascript
变量的代码,您可以通过故意泄漏变量来解决此问题。有关如何执行此操作的详细信息,请参阅

当我使用requirejs(v2.1.13)包含log4javascript(v1.4.10)时,js变量log4javascript未定义,但正如我在chrome网络控制台中看到的,log4javascript.js已成功加载

这正是如果一切都很好的话会发生的事情。看看你注释掉的代码。当log4javascript检测到AMD加载程序时,它不会将名为
log4javascript
的变量泄漏到全局空间中。只有当它既没有检测到AMD加载程序,也没有检测到它正在节点中运行时,它才会泄漏该变量

如果使用log4javascript的代码都在AMD模块中,那么访问log4javascript的正确方法是将其作为依赖项包含在
define
require
调用中。例如,
require(['foo','log4javascript'],function(foo,log4javascript){…})

如果您必须使用希望在全局空间中存在
log4javascript
变量的代码,您可以通过故意泄漏变量来解决此问题。有关如何执行此操作的详细信息,请参阅

当我使用requirejs(v2.1.13)包含log4javascript(v1.4.10)时,js变量log4javascript未定义,但正如我在chrome网络控制台中看到的,log4javascript.js已成功加载

这正是如果一切都很好的话会发生的事情。看看你注释掉的代码。当log4javascript检测到AMD加载程序时,它不会将名为
log4javascript
的变量泄漏到全局空间中。只有当它既没有检测到AMD加载程序,也没有检测到它正在节点中运行时,它才会泄漏该变量

如果使用log4javascript的代码都在AMD模块中,那么访问log4javascript的正确方法是将其作为依赖项包含在
define
require
调用中。例如,
require(['foo','log4javascript'],function(foo,log4javascript){…})

如果您必须使用希望在全局空间中存在
log4javascript
变量的代码,您可以通过故意泄漏变量来解决此问题。有关如何执行此操作的详细信息,请参阅

当我使用requirejs(v2.1.13)包含log4javascript(v1.4.10)时,js变量log4javascript未定义,但正如我在chrome网络控制台中看到的,log4javascript.js已成功加载

这正是如果一切都很好的话会发生的事情。看看你注释掉的代码。当log4javascript检测到AMD加载程序时,它不会将名为
log4javascript
的变量泄漏到全局空间中。只有当它既没有检测到AMD加载程序,也没有检测到它正在节点中运行时,它才会泄漏该变量

如果使用log4javascript的代码都在AMD模块中,那么访问log4javascript的正确方法是将其作为依赖项包含在
define
require
调用中。例如,
require(['foo','log4javascript'],function(foo,log4javascript){…})


如果您必须使用希望在全局空间中存在
log4javascript
变量的代码,您可以通过故意泄漏变量来解决此问题。有关如何操作的详细信息,请参阅。

非常感谢,路易斯!你完全正确。愚蠢的我是初学者!非常感谢,路易斯!你完全正确。愚蠢的我是初学者!非常感谢,路易斯!你完全正确。愚蠢的我是初学者!非常感谢,路易斯!你完全正确。愚蠢的我是初学者!