4

我有一个这样的文件夹结构:

.
├── 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 文件?

4

3 回答 3

1

(扩展@Ryan Lynch 的建议)

根据文档使用该include选项:

您始终可以使用include选项显式添加通过优化器的静态分析找不到的模块。

( http://requirejs.org/docs/optimization.html )

{
    baseUrl: ".", // ?
    appDir: ".", // ?
    dir: "output/",
    modules: [
        {
            name: "main",
            include: [ "shortcut" ]
        }
    ]
}

优秀的example.build.js中更详细的示例(我实际上发现它比文档页面更有用)


(抱歉,没有时间正确复制和测试以确保路径值正确,我稍后再试并更新我的答案)

于 2013-05-09T20:05:07.127 回答
0

尝试在您的选项中包含一个模块数组,因此:

{
    baseUrl: ".",
    out: "main-built.js",
    modules: [
        {
            name: "main"
        }
    ]
}

根据文档:

在 modules 数组中,指定要优化的模块名称,在示例中为“main”。“main”将映射到项目中的 appdirectory/scripts/main.js。然后构建系统将跟踪 main.js 的依赖关系并将它们注入 appdirectory-build/scripts/main.js 文件。

于 2013-05-09T17:38:42.197 回答
0

另一种不太正统的实现方式是将此"shortcut"模块作为依赖项添加到通过r.js扫描发现的任何“可见”模块(即“main.js”)。这样,从“快捷方式”开始的整个依赖分支都将包含在输出中。

于 2013-05-09T20:22:07.963 回答