qiankun icon indicating copy to clipboard operation
qiankun copied to clipboard

qiankun处理子应用引起样式覆盖问题!

Open sauron0914 opened this issue 2 years ago • 3 comments
trafficstars

What happens?

qiankun处理子应用引起样式覆盖问题!

qiankun 引入了一个第三方库 「import-html-entry」, 这个在处理 entryUrl 时,有一个方法 getEmbedHTML,这个方法处理 styles时,采用的方式是「convert external css link to inline style for performance optimization」,这个styles可能是子应用global-style.css, 子应用单独打包的时候,这个styles生成的link会在head 上方,现在qiankun处理后,变成后置了,会引起样式覆盖问题!

sauron0914 avatar May 24 '23 08:05 sauron0914

我暂时的解决方案是

function postProcessTemplate (tplResult) {
  const { styles } = tplResult
  styles.forEach(style=> {
    const link = document.createElement('link');
    link.rel = 'stylesheet';
    link.href = style;
    // 获取 <head> 元素和 <title> 元素
    const headElement = document.head;
    const titleElement = headElement.querySelector('title');

    // 插入自定义元素到 <title> 下方
    headElement.insertBefore(link, titleElement.nextSibling);

  })
  tplResult.styles = []
  return tplResult
}

// 启动 qiankun
start({
  postProcessTemplate,
});

sauron0914 avatar May 24 '23 09:05 sauron0914

m

wangmeijian avatar Sep 11 '23 08:09 wangmeijian

@wangmeijian 不要这种无意义的评论了,如果你想关注这个issue,请点击页面右侧的 "subscribe"!:)

aladdin-add avatar Sep 11 '23 09:09 aladdin-add