使用Require JS加载js文件

时间:2013-12-30 15:52:47

标签: javascript requirejs dependency-management

通过require js加载模块的正确方法是什么?
我是需要js的新手,我正在使用它来加载我的应用所需的不同js模块。我使用嵌入式JS(EJS)作为模板。以下是我的代码:

require.config({
                baseUrl: _URL+"/resources/",
                paths:
                {
                    moment: "js/moment.min",
                    ejs :  "js/ejs",
                    social_login : "public/social_login",
                    location : "js/location"
                },
                shim:
                {
                    ejs:
                    {
                        exports: 'ejs',
                        deps: ['moment']
                    },
                    social_login:
                    {
                         exports: 'social_login',
                         deps: ['moment','ejs']
                    },
                    location:
                    {
                         exports: 'location',
                         deps: ['moment','ejs','social_login']
                     }
                 },
                 waitSeconds: 20
            });
            require(["moment","ejs","social_login","location"],function()
            {
                callback("OK");
            });  

有些时候所有模块都正确加载并正在运行,但是当我反复按 Ctrl + F5 F5 时,它会为我提供ejs和其他模块的脚本错误,就像在firebug控制台中一样它给出了:

enter image description here

我经历了这个链接。 link1表示运行脚本存在JavaScript语法错误或其他执行问题。
加载ejs或任何模块的正确方法是什么?我已经下载了它的最新版本,是否有与EJS没有关注的AMD模块相关的东西?我很空白,请帮忙。感谢

1 个答案:

答案 0 :(得分:0)

加载超时意味着脚本未加载。在“网络”选项卡上检查404并查看请求路径是否正确。相应地调整路径。

另外,请勿使用缩小版本的库。这使得它们难以调试。 RequireJS有自己的优化器,您可以在开发后推动生产时使用它。它会将所有必需的文件压缩到一个文件中。

此外,您应该使用Bower之类的前端包管理器。这样,您将不会手动复制粘贴库并防止由不正确的复制粘贴导致的语法错误。我个人使用Webapp Generator来为我设置应用程序,这样我就不会复制粘贴库了。