问题描述
我正在使用 webpack 为我的应用程序捆绑前端代码。后端是用python编写的。我有一些样式写为 css-modules,这意味着我有本地 CSS 类名称,可以通过 webpack 转换为全局类名称。我可以正常方式从javascript端访问这个映射,
import styles from "./foobar.module.css";
但我也需要从 python 服务器端访问它。作为构建过程的一部分,将这些映射提取为 JSON 文件的正确方法是什么?
我已经设法拼凑出一些似乎有效的东西,但我不禁想到有一种更官方的方法可以做到这一点,但我一直找不到。
/**
* extract CSS class names map to a json file
*/
class MyPlugin {
constructor() {
this.pluginName = "MyPlugin"
}
/**
* @param {Compiler} compiler
*/
apply(compiler) {
compiler.hooks.thisCompilation.tap(this.pluginName,(compilation,params) => {
compilation.hooks.processAssets.tap(
{
name: this.pluginName,stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL,},(assets) => {
let exports;
for (const mod of compilation.modules) {
if (mod.rawRequest === './foobar.module.css') {
exports = mod._source.source().match(/export default ({.*});/)[1]
}
}
assets["css.json"] = {
source: () => exports,size: () => exports.length,}
});
})
}
}
有更好的方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)