是否可以通过加载器或插件修改Webpack模块执行顺序?

时间:2017-07-06 00:49:28

标签: javascript webpack

我的公司正在使用Webpack进行包含数千个模块的大型项目。我们广泛使用类,并且因为ES6中没有提升类,所以经常发生递归依赖问题。

这是一个简化的场景:

// a.js ////
import {B} from './b';

export class A {
  isB(b) {
    return b instanceof B;
  }
}

// b.js ////
import {A} from './a';
export class B extends A {}

// index.js ////
import './a';

查看问题的running example

在此方案中,所需的执行顺序为b > a > index,因为ba具有静态依赖关系,而a可以推迟评估b。然而,自然地,Webpack并不知道这一点(根据规范也不应该这样)。

我想写一个Webpack插件和/或加载器,让我可以执行以下操作:

import {B} from 'defer!./b';

defer加载器会导致ab的依赖关系被添加到依赖关系图中,但是为了命令模块执行而被忽略。< / p>

是否有可以访问的插件或加载器的API来完成此操作?我在文档中没有看到任何内容。任何帮助或建议将不胜感激。

0 个答案:

没有答案