code: function getLazyModuleFileName(chunk) {
      var moduleFileName = null;
  
      // 一开始是参考 angular-cli 的实现, 但他的实现识别不了 require.ensure 方式做的 code split
      // 后来参考 webpack.github.io/analyse 的分析结果得知,
      // chunk 分为两种: 初始分块和非初始分块, 即一开始就加载的分块和懒加载的分块
      if (!chunk.isInitial()) {
          var request = null;
          // 找出通过 import() 或者 require.ensure() 方式加载的模块名称
          for (var i = 0, blockLength = chunk.blocks.length; i < blockLength; i++) {
              var block = chunk.blocks[i];
              for (var j = 0, dependencyLength = block.dependencies.length; j < dependencyLength; j++) {
                  var dependency = block.dependencies[j];
                  if (dependency.request) {
                      request = dependency.request;
                      break;
                  }
              }
          }
  
          if (request) {
              moduleFileName = path.basename(request, path.extname(request));
          }
      }
  
      return moduleFileName;
  }
docs: 获取 code split 方式懒加载的文件的文件名
  
  使用模块的文件名作为 chunk 的名称, 这样便于定位文件
  参考 angular-cli 的实现, 找出 code split 方式加载的文件的文件名
  https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/plugins/named-lazy-chunks-webpack-plugin.ts
  
  @param {object} chunk
  @return {string} 文件名