我正在创建一个单独的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从哪里/如何从外部应用程序加载这些动态主题块束。 如果它是同一个应用程序,则很容易做到,但是我只能从组件库中使用它。