导入动态导入的软件包

时间:2020-06-03 19:40:58

标签: typescript npm webpack dynamic-import splitchunksplugin

希望您可以帮助我: 我有一个打字稿项目“ APP”,该项目使用也是由我开发的UI库(我们称之为“ ui”)。

现在,“ ui”具有可以使用的不同皮肤,每个皮肤本身就是另一个库(“ ui-skin-red”,“ ui-skin-blue”等)。

因此,UI会根据“ APP”的需要动态导入皮肤:

load(skin:Skin):Promise<UI> {
  switch(skin){
    case skin.RED:
      import("ui-skin-red").then( ui => resolve(ui) );
    break;
    case skin.BLUE:
      import("ui-skin-blue").then( ui => resolve(ui) );
    break;
    ... etc ...
  }
}

当我将“ ui”安装到“ APP”中时(使用npm install,因为它在NPM注册表中),它也会安装所有皮肤,因为它们是“ ui”的依赖项。

我不介意它们位于node_modules文件夹中,但我确实希望捆绑包仅具有实际需要的皮肤“ APP”。

有什么方法可以指示Webpack这样做吗?我尝试过使用splitChunks,但是它们仍然可以编译所有皮肤。

0 个答案:

没有答案