【问题标题】:How to get r.js optimizer to combine all modules in a project into one file?如何让 r.js 优化器将项目中的所有模块组合到一个文件中?
【发布时间】:2012-10-11 00:55:34
【问题描述】:
通过对 r.js 优化器的试验,您的最终 index.html 文件似乎无法仅引用单个脚本,并且在用户会话的生命周期内永远不会对其他脚本进行任何异步调用(除非他们当然会重新加载页面)。根据我的经验,它看起来像是创建了一堆可以在需要时引用的优化文件组合组?这对于大多数组合脚本来说似乎是违反直觉的,在这些脚本中,您最终只会得到一个顺序正确的组合/优化 js 文件。谁能帮忙解释一下我的问题?
【问题讨论】:
标签:
javascript
node.js
build
requirejs
r.js
【解决方案1】:
是的,这就是 r.js 的工作原理,它将您的依赖项优化为一个或多个文件(您可以使用 include 选项来获取所有文件)。
虽然,此构建将 require.js 脚本文件排除在构建之外。但是,在构建之后,您可以在构建文件的顶部组合 require.js(或最小的 AMD 实现,如 almond.js),它几乎都可以正常工作(根据您引导应用程序的方式,可能会出现一些问题,但是大多数情况下,这些问题很容易解决)。
要轻松组合文件,您可以使用grunt.js 之类的工具(我真的向您推荐它,因为它可以做更多事情,并且确实是前端开发工作流程中必须具备的)。如果您使用主干应用程序,您可以检查 (Backbone Boilerplate)[https://github.com/tbranyen/backbone-boilerplate] 及其 grunt 实现。