如何从npm依赖模块加载动态导入块捆绑?

时间:2019-05-07 20:13:53

标签: javascript reactjs npm webpack

我正在创建一个单独的ui组件库,主要思想之一是支持许多不同的主题(我们正在使用styled-components)。因此,我有10多个主题文件,而且显然,我不想将所有这些主题都包含在库包中(我正在使用webpack)。因此,我尝试使用动态导入,在我需要在另一个应用程序中使用此组件库之前,它看起来还不错。当我需要的是相反的时候,所有这些带有主题加载的动态块都从ouput.publicPath Webpack配置的components library开始-我想基于当前应用程序的publicPath加载它们。 有什么办法解决吗?我不想强制对此publicPath进行硬编码,因此所有其他应用都应使用相同的publicPath

我尝试在publicPath中将components library设置为publicPath: '/dist/',但这意味着在所有使用该库的应用中,我应该创建{{ 1}}文件夹,并在其中保存块文件。 我也不确定是否可以在我的应用程序内(不在库中)构建块文件,因此我只是在库之后复制这些文件(没什么大不了的。)

只有在我的应用程序中保留相同的输出文件夹结构的情况下,该方法才有效

dist

如何使用动态导入:

output: {
  publicPath: '/dist/',
  chunkFilename: '[name].theme.js',
  ...
},

主题文件基本上只是一个大对象,例如:

/* webpackChunkName: "[request]" */
/* webpackMode: "lazy" */
`./../themes/${brandName}/index`).then(module => {...})

我想实现的目标是说一个webpack从哪里/如何从外部应用程序加载这些动态主题块束。 如果它是同一个应用程序,则很容易做到,但是我只能从组件库中使用它。

0 个答案:

没有答案