angular-cli可以删除未使用的css吗?

Han*_*Che 34 css minify webpack angular-cli angular2-aot

到目前为止,我可以用角度cli创建的最小的捆绑是运行

ng build --aot true -prod

我想知道构建过程是否也删除了未使用的CSS类,例如从bootstrap?

如果不是,我怎么能添加像purifycss这样的库?

编辑2018年4月

我仍然没有找到任何令人满意的解决方案来解决他的问题,特别是与带有角度的延迟加载模块兼容的解决方案...

干杯

Dmy*_*kyi 7

我最近对此做了一些研究,但我找不到任何真正安全的方法来删除未使用的 CSS。但是,我遇到了一些可以帮助您检测 VS Code 中的死代码的工具。有一个不完美但看起来很有希望的扩展。我还对如何删除未使用的 Angular Material CSS(如果您使用它)进行了一些调查,并创建了一个关于它的视频。你可以在这里查看

但至少现在(2020 年)没有任何可靠的方法可以实现您想要的目标,并且还可以查看Angular 核心团队成员关于此主题答案

  • @FlavienVolken 嗯,与 PurgeCSS 相比,它做了额外的改进,但仍然...... ngx-unused-css 文档中有一个声明:“它找到项目内的所有 .html 文件,然后将其与它们的样式文件配对;例如 app. component.html > app.component.scss”,所以这意味着,*.ts 文件将被忽略,但我们可以以 Renderer 为例设置 css 类,这意味着 CSS 类将被视为未使用,而实际上它并未使用真的。所以这就是为什么我不认为它是一个“安全”的解决方案,特别是对于中型和大型项目:) (3认同)
  • 使用 [ngx-unused-css](https://github.com/ivanblazevic/ngx-unused-css) 来检测未使用的属性怎么样?它在幕后使用 [PurgeCSS](https://purgecss.com/)。 (2认同)

Yas*_*nik 0

如果您使用的是 web pack,那么您可以这样做:-

首先,安装purifycss-webpackusingnpm i -D purifycss-webpack

module.export={
  plugins: [
    new ExtractTextPlugin('[name].[contenthash].css'),
    // Make sure this is after ExtractTextPlugin!
    new PurifyCSSPlugin({
      // Give paths to parse for rules. These should be absolute!
      paths: glob.sync(path.join(__dirname, 'app/*.html')),
    })
  ]

};
Run Code Online (Sandbox Code Playgroud)

请访问以下链接进行详细了解。

https://github.com/webpack-contrib/purifycss-webpack