gpt4 book ai didi

Svelte:无法清除导入的未使用 CSS

转载 作者:行者123 更新时间:2023-12-04 15:08:02 25 4
gpt4 key购买 nike

我试图删除从外部 css 文件导入的未使用的 css,但没有成功。
我尝试了很多组合都是徒劳的,每次运行构建脚本时,我最终都会得到一个巨大的 bundle.css。
这是我迄今为止尝试过的所有内容的列表:

  • 从 App.svelte 导入文件 <script>
  • 从 App.svelte 导入文件 <style> (使用 postcss-import)
  • 直接从 main.js 导入文件
  • 使用 postcss-purgecss连同 rollup-plugin-postcss而不是路过 svelte-preprocess

  • 我很确定我做错了什么,但老实说我无法弄清楚是什么。
    如果有人知道如何解决这个问题,我很想听听一些反馈。
    简单的 repo 示例: https://github.com/mgrisole/svelte-playground

    最佳答案

    您需要按照以下步骤操作:

  • 进口 rollup-plugin-postcssrollup.config.js :
  • import postcss from 'rollup-plugin-postcss';
  • 将相关部分(您的 rollup.config.js 的第 41-56 行)替换为:
  • svelte({
    preprocess: sveltePreprocess({ postcss: true }),
    compilerOptions: {
    dev: !production,
    css: css => { css.write('bundle.css') },
    },
    ...(production && { emitCss: false }),
    }),
    production
    ? postcss({ extract: true, minimize: true })
    : css({ output: 'bundle.css' }),
  • postcss.config.js 中配置 purgecss :
  • const purgecss = require('@fullhuman/postcss-purgecss')({
    content: ['./**/**/*.html', './**/**/*.svelte'],
    whitelistPatterns: [/svelte-/],
    defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
    });

    const isProduction = !process.env.ROLLUP_WATCH && !process.env.LIVERELOAD

    module.exports = {
    plugins: [
    ...(isProduction ? [purgecss] : [])
    ]
    };

    关于Svelte:无法清除导入的未使用 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65724373/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com