【问题标题】:glMatrix 2.2.0 with RequireJS带有 RequireJS 的 glMatrix 2.2.0
【发布时间】:2013-06-25 20:12:16
【问题描述】:

当包含在 RequireJS 中时,glMatrix 2.2.0 的所有定义似乎都未定义。但是,在页面检查中,它作为脚本标记包含在 HTML 中。

但同样的设置也适用于 glMatrix 1.3.7

require配置如下:

require.config({
baseUrl: 'js/app',
paths: {
    jquery: '../lib/jquery',
    glm: '../lib/gl-matrix'
}
});

require(['main']);

而 main.js 看起来像(jquery 在这种情况下工作):

define(function (require) {
var $ = require('jquery');
require('glm');

$(function () {
    var a = mat4.create();
    $('body').html("hello: " + a);
});
});

我对其他全局命名空间库(如 stats.js)也有同样的问题。

虽然在 HTML 中定义脚本是可行的,但我更希望它与 RequireJS 一起使用以实现最小化/连接。

<script src="js/lib/stats.js"></script>
<script src="js/lib/gl-matrix-min.js"></script>

希望我错过了一些明显的东西,因为我正在撕裂我的头发。

提前感谢您的任何建议。

【问题讨论】:

    标签: javascript requirejs global-namespace


    【解决方案1】:

    我也将 glmatrix 与 require.js 一起使用,最新版本支持 require.js,对我来说它似乎工作正常。

    但是我对 require.js 的使用略有不同,我的模块通常是这样开始的:

    define(['lib/glmatrix/gl-matrix'],
        function(glmatrix) {
            var myModule = function() {};
            // use glmatrix.vec3, etc here
            return myModule;
    });
    

    这对你有用吗?

    【讨论】:

    • 谢谢安德鲁,我也得出了这个结论,这似乎是最好的方法。我遇到了麻烦,因为我假设 glmatrix 函数是全局的,例如“vec3.create();”,没有像“glmatrix.vec3.create();”这样的命名空间。
    猜你喜欢
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多