到目前为止,我可以使用 angular cli 创建的最小包是通过运行
ng build --aot true -prod
我想知道构建过程是否还会从引导程序中删除未使用的 css 类?
如果不是,我该如何添加 purifycss 之类的库?
编辑 2018 年 4 月
我仍然没有找到任何令人满意的解决方案来解决他的问题,尤其是与带有角度的延迟加载模块兼容的解决方案......
干杯
到目前为止,我可以使用 angular cli 创建的最小包是通过运行
ng build --aot true -prod
我想知道构建过程是否还会从引导程序中删除未使用的 css 类?
如果不是,我该如何添加 purifycss 之类的库?
编辑 2018 年 4 月
我仍然没有找到任何令人满意的解决方案来解决他的问题,尤其是与带有角度的延迟加载模块兼容的解决方案......
干杯
我最近对此进行了一些研究,但我找不到任何真正安全的方法来删除未使用的 CSS。但是我遇到了一些可以帮助您检测 VS Code 中的死代码的工具。有一个扩展并不完美,但看起来很有希望。我还对如何删除未使用的 Angular Material CSS(如果你使用它)做了一些调查,并制作了一个关于它的视频。你可以在这里查看。
但至少现在(2020 年)没有任何可靠的方法可以实现您想要的,并且还可以查看Angular 核心团队成员对此主题的回答
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')),
})
]
};
先安装purifycss webpack
不知道这是否算作一个答案,因为它与 angular-cli 并没有真正的关系,但是我以崇高的文本打开我的项目,然后启动UnusedCssFinder,它突出显示了我的 css 文件中所有未使用的属性。
如果你被驱逐,即ng eject
。然后你可以自定义 webpack 构建来做大部分事情。minifyCSS
作为构建的一部分,我在两个插件中打开了几个选项以最小化样式。
LoaderOptions插件
new LoaderOptionsPlugin({
"sourceMap": false,
"options": {
"html-minifier-loader": {
"removeComments": true,
"collapseWhitespace": true,
"conservativeCollapse": true,
"preserveLineBreaks": true,
"caseSensitive": true,
"minifyCSS": true
},
HtmlWebpackPlugin
new HtmlWebpackPlugin({
"template": "./src\\index.ejs",
"filename": "./index.html",
"hash": true,
"inject": true,
"compile": true,
"favicon": 'src/assets/Flag.png',
"minify": {
collapseWhitespace: true,
removeComments: true,
minifyCSS: true
},
如果您使用的是 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')),
})
]
};
访问下面的链接以获得详细的了解。
在 Angular 中,最好的选择是为每个组件创建一个单独的 CSS 文件并使用 ViewEncapsulated.Emulated。
在这个文件中,您将只添加该组件使用的 CSS。您可以通过Google Chrome的“封面”发现每个页面使用的样式