将清除后的 tailwindcss 加载到 iFrame

Posted

技术标签:

【中文标题】将清除后的 tailwindcss 加载到 iFrame【英文标题】:loading purged tailwindcss into an iFrame 【发布时间】:2021-07-03 18:50:14 【问题描述】:

我有一个 vuejs 组件,我在 iFrame 中渲染一个动态组件,但我不知道如何在其中加载我的 tailwindcss 文件......

目前我正在创建一个额外的 css 文件,在其中手动添加我需要的所有样式。我使用原始加载程序加载此文件,然后将字符串附加到样式标记中,这可行,但工作量很大。

或者有什么方法可以生成一个清除的 css 文件?我发现只有一个 cli 命令可以根据我的配置文件构建所有类。 npx tailwindcss build src/assets/css/tailwind.css -o dist/assets/css/index.css。但这就像 4MB 一样大,会杀死我的浏览器。

我的代码

<template>
  <iframe ref="iFrame"></iframe>
</template>

<script>
import Vue from 'vue'
export default 
  
  props: 
    component: 
      type: String,
      required: true
    
  ,
  computed: 
    isComponent() 
      return () => import(`@/design-system/$this.component.vue`)
    ,
  ,
  mounted() 
    const styles = require('!!raw-loader?esModule!@primitives/styles.css').default

    const iFrame = this.$refs.iFrame
    const style = document.createElement('style')
    const wrapper = document.createElement('div')
    style.appendChild(document.createTextNode(styles))
    style.appendChild(document.createTextNode(fonts))

    iFrame.contentWindow.document.head.appendChild(style)
    iFrame.contentWindow.document.body.appendChild(wrapper)

    new Vue(
      el: wrapper,
      render: h => h(this.isComponent)
    )
  

</script>

【问题讨论】:

【参考方案1】:

确保在构建 CSS 时在命令行中设置 NODE_ENV=production。这可确保 Tailwind 从文件中删除所有未使用的 CSS。

NODE_ENV=production npx tailwindcss build src/assets/css/tailwind.css -o dist/assets/css/index.css

【讨论】:

以上是关于将清除后的 tailwindcss 加载到 iFrame的主要内容,如果未能解决你的问题,请参考以下文章

我想将我的自定义构建 tailwindcss 文件清除到更小的大小

如何将带有 PostCSS 清除的 Tailwind CSS 添加到 Rails 5?

使用@nuxtjs/tailwindcss 清除了 SCSS 样式

奇怪和疯狂的 PHP 错误,清除浏览器历史记录后的页面加载导致脚本多次运行 [重复]

将tailwindcss添加到幸运框架

TailWindCSS 超级配置