【问题标题】:RequireJS: optimize scripts and include RequireJS itself in itRequireJS:优化脚本并在其中包含 RequireJS 本身
【发布时间】:2012-12-22 20:16:29
【问题描述】:

我有一个以 AMD 形式编写的复杂 JS 项目。它使用 RequireJS。

我的系统应该能够将其功能包含到不同的外部站点。我想将它编译成一个 js 文件并像这样包含它:

<script type="text/javascript" src="http://mysystem.com/core-build.js"></script>

我不知道外部站点是否有 requirejs,这就是为什么 requirejs 本身似乎应该包含在 core-build.js 中的原因。编译后的文件应该完全独立于环境。

另一方面,它不应该重新定义外部站点环境。我的系统使用 jquery、knockout,并且这些库应该在本地定义,仅用于我的系统目的。它们不应影响站点的全局命名空间。

所以我的问题是如何优化脚本到一个文件,在其中包含 requirejs 本身并将所有内容包装到本地命名空间中?

【问题讨论】:

    标签: javascript compilation requirejs amd r.js


    【解决方案1】:

    你可以使用Gruntconcat task

    concat: {
        dist: {
            src: [
                "www/assets/js/libs/require.js",
                "dist/debug/app.js"
            ],
    
            dest: "www/app_build.js",
    
            separator: ";"
        }
    }
    

    您可以在 Backbone Boilerplate 上查看示例应用设置(即使您没有使用 Backbone)。

    【讨论】:

    • 西蒙,感谢您的回复。我用的是 r.js,看来 r.js 和 grunt 有类似的功能。我会看一下 r.js-concat 选项并写下它的配置。 r.js 也有命名空间选项,这解决了对全局环境的影响。
    • Grunt 也将 r.js 构建到一个任务中,结帐:grunt-contrib-requirejs
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2014-03-05
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    相关资源
    最近更新 更多