使用 cssnext 和 cssnano 的 PostCSS 简介

postcss是一个新的工具,它使得开发转换样式的JavaScript插件变得很容易。这为新插件打开了一个新的可能性世界,使其更容易与CSS一起工作。这篇文章介绍了两个最流行的PostCSS插件:css Next和cssnano。

  • css Next允许您使用今天的css的未来。您可以使用即将推出的功能或并非所有浏览器都支持的功能,如css variablescss COLOR function. css Next** 将对您的样式进行转换,使其可以在所有浏览器中运行。换句话说,css Next允许您使用实际的css语法编写样式,而不是使用不同的预处理器语法。** css Next** 还会自动为您的样式添加供应商前缀,因此在编写您的css时不需要自己使用前缀。

举个例子,让我们假设我们有以下的css样式:

 1:root {
 2  --text: hotpink;
 3  --bg-color: #F9EC31;
 4  --flex-center: {
 5    display: flex;
 6    margin: auto;
 7  }
 8}
 9
10.box {
11  background-color: var(--bg-color);
12  color: color(hotpink whiteness(25%));
13  @apply(--flex-center);
14}
15
16.warn {
17  @apply(--flex-center);
18}

cssNext 会将样式转换为:

 1.box {
 2  background-color: #F9EC31;
 3  color: rgb(255, 64, 159);
 4  display: -webkit-box;
 5  display: -ms-flexbox;
 6  display: flex;
 7  margin: auto;
 8}
 9
10.warn {
11  display: -webkit-box;
12  display: -ms-flexbox;
13  display: flex;
14  margin: auto;
15}
  • CSSNANO会缩小和压缩您的css。它删除了空格,消除了重复的规则,删除了过时的供应商前缀,删除了注释,并执行了许多其他优化。

可以根据您的特定需求配置css next和cssnano,但在这里我们只展示如何使用缺省值。这将有望涵盖您的大多数用例。

在这个例子中,我们还将使用PostCSS-CLI,但是如果更适合您的工作流程,您也可以将PostCSS与WebpackGrunt一起使用。

安装postcss、postcss-cli、cssNext&cssnano

通过NPM安装带有css Next和cssnano插件的PostCSS:

1$ npm install --save-dev postcss postcss-cli postcss-cssnext cssnano

或通过Yarn:

1$ yarn add postcss postcss-cli postcss-cssnext cssnano --dev

使用PostCSS-CLI

您可以通过提供输入和输出文件以及要使用的postcss插件(S)来使用postcss命令行界面。使用--USE标志指定插件,使用--OUPUT标志指定输出文件,最后提供不带任何标志的输入文件:

1$ postcss --use postcss-cssnext --use cssnano --output styles-out.css styles.css

您还可以在监视模式下使用PostCSS CLI,以便它侦听对输入文件的更改:

1$ postcss --use postcss-cssnext --use cssnano --output styles-out.css styles.css --watch

您还可以在json配置文件中指定更多细粒度的配置选项,并使用--config标志指定配置文件:

1$ postcss --config postcss-config.json

你的配置文件看起来像这样:

1{
2  "use": ["postcss-cssnext", "cssnano"],
3  "input": "styles.css",
4  "output": "styles-out.css"
5}

NPM脚本

要简化您的工作流程,只需在项目的Package.json文件中设置一个postcss脚本:

1"scripts": {
2  "postcss": "postcss --use postcss-cssnext --use cssnano --output styles-out.css styles.css"
3}

现在,您需要做的就是运行以下命令:

1$ npm run postcss
Published At
Categories with 技术
Tagged with
comments powered by Disqus