我不清楚如何将许多js文件捆绑到一个文件中。当我运行优化器时,结果是一个输出目录,其结构镜像我的源目录。其中的所有文件都缩小了。非常好。但我正在寻找的是一个缩小的文件。我没有看到。所以我的项目已经过优化但没有连接。
我必须误解一些有关如何配置过程的事情。这就是我正在做的事情:
我在目录中有r.js和build.js.在该目录下的文件夹中,我有sourcejs。那个sourcejs文件夹有application.js(我希望优化器跟踪的模块)。该模块“需要”下面嵌套文件夹中的大量内容。
这是构建文件:
({
appDir: "sourcejs",
baseUrl: ".",
dir: "sourcejs-build",
mainConfigFile: 'sourcejs/application.js',
modules: [
{
name: "application"
}
]
})
我假设将优化器指向主模块application.js,这将是从那里产生所需输出所需的全部内容。它将跟踪其中的依赖关系并找到所有子文件夹和文件的方式。优化器似乎确实找到了所有源。我得到输出:
Tracing dependencies for: application
Uglify file: C:/o/sourcejs-build/application.js
Uglify file: C:/o/sourcejs-build/controller.js
Uglify file: C:/o/sourcejs-build/modules/controllers/auxcontroller.js
Uglify file: C:/o/sourcejs-build/modules/controllers/documentcontroller.js
...long list of files
application.js
----------------
application.js
输出文件application.js不是项目的连接版本,而只是自身的缩小版本。
我的误会是什么?
答案 0 :(得分:0)
默认情况下,所有js文件都会在优化目录中缩小。据我所知,根据您提供的配置,它会将application.js及其所依赖的模块捆绑到同一个文件中。
Aplication.js和它的依赖关系进入Application.js。
优化过程仅捆绑模块中提到的文件,并将其他文件保留为缩小。如果您希望文件是捆绑包,则必须提供捆绑的文件名(最有可能是生成新文件。)您必须在模块中说create: true
以在构建过程中创建新文件。
{
name : bundle1,
create : true,
include: ['dep1', 'dep2']
},
{
name : bundle12,
create : true,
include: ['depA', 'depB']
}
像这样,您必须指定捆绑配置,以便在构建过程中创建它们。