RequireJs 有一个优化工具,可以帮助你缩小和连接你的模块。它有很多选项,并且可能难以使用,但是使用像GruntJs或(尤其是)使用 GruntJs 构建的Yeoman这样的构建工具会变得更容易。
在这两种情况下,您都可以使用rjs
任务(优化模块),但Yeoman还是更容易一些,因为它有生成器,可以为您配置它:
// usemin handler should point to the file containing
// the usemin blocks to be parsed
'usemin-handler': {
html: 'index.html'
},
// rjs configuration. You don't necessarily need to specify the typical
// `path` configuration, the rjs task will parse these values from your
// main module, using http://requirejs.org/docs/optimization.html#mainConfigFile
//
// name / out / mainConfig file should be used. You can let it blank if
// you're using usemin-handler to parse rjs config from markup (default
// setup)
rjs: {
// no minification, is done by the min task
optimize: 'none',
baseUrl: './scripts',
wrap: true,
name: 'main'
},
在index.html
您只需使用注释行来指定哪些 js 文件应该被缩小/连接到哪个输出文件:
<!-- build:js scripts/amd-app.js -->
<script data-main="scripts/main" src="scripts/vendor/require.js"></script>
<!-- endbuild -->
在上面的示例中,模块将连接到一个名为amd-app.js
.
编辑:
这将通过grunt
从命令行执行来完成。这将启动许多有用的任务,这将在一个文件夹中构建项目dist
,但这又是高度适应性的。
生成的index.html
文件(in dist
)只有(如果需要)一个 javascript 文件:
<script src="scripts/15964141.amd-app.js"></script>
我的建议:使用 Yeoman 让生活更轻松(至少在处理缩小/连接时)。