据我了解,r.js 有两种主要的优化模式……单个文件或整个项目。
整个项目优化,有效地将整个项目复制到一个dist
文件夹中,似乎更适合更大的多页应用程序。
但是假设您有单页应用程序,特别是一个相对较小的应用程序,您肯定希望将所有 JavaScript 连接到一个文件中(包括 RequireJS/almond)。
你如何部署这个?如果我有可用的服务器端语言,我想服务器可以检查环境标志并加载适当的脚本标签。
但是如果环境是静态web服务器,应该怎么做呢?这应该作为构建脚本的一部分处理吗?
据我了解,r.js 有两种主要的优化模式……单个文件或整个项目。
整个项目优化,有效地将整个项目复制到一个dist
文件夹中,似乎更适合更大的多页应用程序。
但是假设您有单页应用程序,特别是一个相对较小的应用程序,您肯定希望将所有 JavaScript 连接到一个文件中(包括 RequireJS/almond)。
你如何部署这个?如果我有可用的服务器端语言,我想服务器可以检查环境标志并加载适当的脚本标签。
但是如果环境是静态web服务器,应该怎么做呢?这应该作为构建脚本的一部分处理吗?
对于这样的事情,我总是建议使用Rex或Capistrano之类的工具,这使得配置管理和部署非常容易,即使对于单页或静态应用程序也是如此。
我现在正在使用 Capistrano 将一些应用程序部署到我的服务器上。在 Capistrano 脚本中,我定义了几个任务,这些任务将为我的 HTML 文件执行缩小/丑化以及所需的补丁(实际上是使用位于js-built
存储优化文件的位置而不是js
目录的 JavaScript 文件)。
因此,您的静态网站部署脚本会上传最新版本,开始缩小过程(可能使用r.js),然后修补index.html
文件以使用脚本的缩小版本。
由于 Capistrano 和 Rex 非常容易理解,这甚至不会产生太多开销,并且生成的部署脚本可能包含大约 30 行代码。这绝对值得。