我有一个像这样的文件夹结构:
.
├── autocomplete
│ ├── core.js
│ ├── search.js
│ └── user.js
├── build.js
├── collapsible_lists.js
├── griffgrabber
│ ├── canvasobject.js
│ ├── cargame.js
│ ├── car.js
│ ├── griffDrawer.js
│ ├── keylistener.js
│ ├── run.js
│ └── victim.js
├── main.js
├── newsfeed.js
├── require.js
├── shortcut.js
└── sidebar.js
3 directories, 20 files
main.js是启动文件。该文件需要几个文件,但不是全部。其余文件包含在
中<script>
require(['shortcut'], function(shortcut){
// ...
})
</script>
在一些html文件中。
到目前为止,这是我的build.js文件:
{
baseUrl: ".",
name: "main",
out: "main-built.js",
}
但它只包含main.js所需的文件。是否可以在一次运行中优化所有javascript文件?
答案 0 :(得分:1)
(扩展@Ryan Lynch的建议):
使用include
选项,根据文档:
您始终可以使用 include 选项显式添加通过优化程序静态分析找不到的模块。
(http://requirejs.org/docs/optimization.html)
{
baseUrl: ".", // ?
appDir: ".", // ?
dir: "output/",
modules: [
{
name: "main",
include: [ "shortcut" ]
}
]
}
优秀example.build.js中的更详细示例(我实际上发现它比文档页面更有用)
(抱歉,没时间复制并正确测试以确保路径值正确,我稍后会尝试并更新我的答案)
答案 1 :(得分:0)
尝试在您的选项中包含模块数组,所以:
{
baseUrl: ".",
out: "main-built.js",
modules: [
{
name: "main"
}
]
}
根据文件:
在modules数组中,指定您想要的模块名称 在示例中,优化“main”。 “main”将映射到 项目中的appdirectory / scripts / main.js。构建系统将 然后跟踪main.js的依赖关系并将它们注入到 appdirectory-build / scripts / main.js文件。
答案 2 :(得分:0)
另一种 - 不太正统 - 实现这一目标的方法是将此"shortcut"
模块添加为r.js
扫描发现的任何“可见”模块的依赖(即“main.js” “)。这样,从“快捷方式”开始的整个依赖关系分支将包含在输出中。