如何使用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" ]
        }
    ]
}