Requirejs optimiser - 包含某些文件和文件夹的嵌套依赖项

Mal*_*001 2 javascript requirejs r.js

我正在使用RequireJS优化器来缩小和连接我的代码.目前,由于嵌套依赖性,r.js不会缩小我的很多脚本.

我想包含嵌套依赖项:

  • 内部的所有依赖:'js/services'
  • 所有嵌套的依赖项,用于特定JavaScript文件的列表

注意:我确实知道有选项,findNestedDependencies: true但是它会在应用程序中查找所有JavaScript文件的绝对依赖关系,因为我只想对某些JavaScript文件和文件夹执行此操作,因为我有一组始终用于的文件每页/每页.

我当前的构建文件如下所示:

  ({
    baseUrl: '../static/js',
    mainConfigFile: '../static/js/main.js',
    name: 'main',
    out: '../static/js/scripts.min.js',
    paths: {
        requireLib: 'vendor/require/require.min'
    },
    include: 'requireLib'
})
Run Code Online (Sandbox Code Playgroud)

我一直在关注本教程以使优化器运行:http://www.youtube.com/watch?v = m6VNhqKDM4E

kry*_*ger 6

您可以使用include指定要强制进入输出文件的所有依赖项:

// ...
include: ['requireLib', 'js/services/dep1', 'js/services/dep2'],
// ...
Run Code Online (Sandbox Code Playgroud)

我不认为有一种方法可以包含整个文件夹(类似的东西"js/services/*").


因为在我的项目中我有许多动态依赖项,我想在输出中包含我最终创建一个"js/services/_all.js"模块,该模块列出了其目录中的文件,例如:

define([
    './dep1',
    './dep2'
  ],
  function () {
    // this module imports all modules from current folder so 
    // there's no need to list every single file in the build config
  });
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令配置r.js:

// ...
include: ['requireLib', 'js/services/_all'],
// ...
Run Code Online (Sandbox Code Playgroud)