需要js优化器缩小我的项目但不连接到捆绑文件

时间:2017-11-10 16:52:25

标签: javascript node.js requirejs-optimizer

我不清楚如何将许多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不是项目的连接版本,而只是自身的缩小版本。

我的误会是什么?

1 个答案:

答案 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']
}

像这样,您必须指定捆绑配置,以便在构建过程中创建它们。