如何使用requirejs优化目录中的所有javascript文件
我的文件夹结构如下:如何使用requirejs优化目录中的所有javascript文件,javascript,requirejs,Javascript,Requirejs,我的文件夹结构如下: . ├── autocomplete │ ├── core.js │ ├── search.js │ └── user.js ├── build.js ├── collapsible_lists.js ├── griffgrabber │ ├── canvasobject.js │ ├── cargame.js │ ├── car.js │ ├── griffDrawer.js │ ├── keylistener.js │ ├── run
.
├── 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>
但它只包含main.js所需的文件。是否可以在一次运行中优化所有javascript文件?尝试在选项中包含模块数组,以便:
{
baseUrl: ".",
out: "main-built.js",
modules: [
{
name: "main"
}
]
}
根据文件:
在模块数组中,指定要创建的模块名称
优化,在示例中为“main”。“main”将映射到
项目中的appdirectory/scripts/main.js。构建系统将
然后跟踪main.js的依赖项并将它们注入
appdirectory build/scripts/main.js文件
(扩展@Ryan Lynch的建议):
使用包括
选项,如文档所示:
通过使用include选项,您始终可以显式添加未通过优化器静态分析找到的模块
()
更详细的例子(我发现它比文档页面更有用)
(很抱歉,没有时间进行适当的复制和测试以确保路径值正确,我稍后会尝试并更新我的答案)另一种不太正统的方法是将此
“快捷方式”
模块作为依赖项添加到r.js
扫描(即。“main.js”)。这样,整个依赖项分支将从“快捷方式”开始“将包含在输出中。您发布的生成文件对我无效。似乎如果我使用模块,我必须删除'out'语句并添加'dir'语句。当我使用“dir”时,它会优化整个目录,并将优化后的文件复制到另一个目录。但它并没有将每个文件都包含到main-build.js文件中。
{
baseUrl: ".",
out: "main-built.js",
modules: [
{
name: "main"
}
]
}
{
baseUrl: ".", // ?
appDir: ".", // ?
dir: "output/",
modules: [
{
name: "main",
include: [ "shortcut" ]
}
]
}