3

我尝试删除从外部 css 文件导入的未使用 css,但未成功。

我徒劳地尝试了很多组合,每次运行构建脚本时,我都会得到一个巨大的bundle.css

这是迄今为止我尝试过的所有内容的列表:

我很确定我做错了什么,但老实说我不知道​​是什么。

如果有人知道如何解决这个问题,我很想听听一些反馈。

简单的回购示例:https ://github.com/mgrisole/svelte-playground

4

1 回答 1

2

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

  1. 导入:rollup-plugin-postcss_rollup.config.js
import postcss from 'rollup-plugin-postcss';
  1. 将相关部分(您的第 41-56 行rollup.config.js)替换为:
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' }),
  1. 配置 purgecss postcss.config.js
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] : [])
  ]
};
于 2021-01-14T23:30:22.580 回答