使用RequireJS的优化器和单个构建文件来生成多个输出

tho*_*aux 10 build requirejs

我目前正在开发一个大型JavaScript项目,我正在使用RequireJS强加一些结构.

我想使用优化器(r.js)配置构建,因此我的项目将捆绑在一个缩小的文件中(用于生产目的).这很容易,但是我的项目中有几个包,并希望将每个包构建到自己的缩小的javascript文件中.

文件夹结构示例:

src/core/main.js
src/core/util/HashMap.js (
src/package1/main.js
src/package1/views/view1.js
Run Code Online (Sandbox Code Playgroud)

main.js文件是模块的入口点.

我想以这样的方式配置我的构建:在构建完成后,我将有以下两个输出:

core.min.js
package1.min.js
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法让这个工作.使用modules构建配置的属性似乎不会缩小每个模块.

任何人都可以了解我在这里做错了什么吗?

tho*_*aux 0

我不记得我问这个问题时到底出了什么问题(甚至可能是我当时使用的当前 RequireJS 版本的错误),但这种设置可以通过使用轻松实现(因为我已经在我的问题中指出)modules部分。只需按如下方式声明您的模块:

optimize:"uglify",
dir: 'out',
modules: [
    {
        name: "src/core/Main"
    },
    {
        name: "src/package1/Main"
    }
],
...
Run Code Online (Sandbox Code Playgroud)

这将导致以下结构out

out
|--core
:  |--Main.js
|--package1
:  |--Main.js
Run Code Online (Sandbox Code Playgroud)

有一些选项可用于重命名输出文件、展平输出文件夹、排除所有corepackage1等等,但基本上这就是我正在寻找的结构。