PostCSS là một xu hướng sử dụng CSS chuyển thể mới nổi lên từ năm 2016. Sự xuất hiện của nó đem lại khá nhiều tiện ích và được cộng đồng Lập trình Frontend khá ưa chuộng. Code Tốt xin giới thiệu những điểm nhấn và ứng dụng rộng rãi của PostCSS.
PostCSS là gì?
PostCSS ra đời vào cuối năm 2013 và được một số lượng lớn frontend developer ứng dụng vào các dự án của mình, bao gồm cả các công ty lớn như Google, Twitter, Shopify.
PostCSS là một công cụ dùng JavaScript để xử lý CSS
Định nghĩa từ trên Github cho rằng đây là một công cụ để chuyển đổi style với các plugin JS, chẳng hạn như tối ưu CSS, hỗ trợ biến và mixins, sư dụng các công nghệ CSS của tương lai,…
Nó chuyển CSS của bạn thành AST (abstract syntax tree)(cây cú pháp trừu tượng) Một điều tuyệt vời của công cụ này là nó mang tính modular rõ rệt.
Chính bởi cách tiếp cận này, có tới hơn 200 plugin có thể sử dụng cùng PostCSS.
Sau đây là một số plugin phổ biến sử dụng với PostCCC
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var postcssNested = require('postcss-nested')
gulp.task('css', function () {
var plugins = [postcssNested];
return gulp.src('./src/*.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('./dest'));
});
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var postcssNested = require('postcss-nested');
var postcssImport = require('postcss-import');
gulp.task('css', function () {
var plugins = [postcssNested,postcssImport];
return gulp.src('./src/*.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('./dest'));
});
Biến đổi nó thành 1 đầu vào thôi
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var postcssNested = require('postcss-nested');
var postcssImport = require('postcss-import');
gulp.task('css', function () {
var plugins = [postcssNested,postcssImport];
return gulp.src('./src/style.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('./dest'));
});
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var postcssNested = require('postcss-nested');
var postcssImport = require('postcss-import');
var autoPreFixer = require('autoprefixer');
gulp.task('css', function () {
var plugins = [postcssNested,postcssImport,autoPreFixer];
return gulp.src('./src/style.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('./dest'));
});
PostCSS Preset Env cho phép bạn chuyển đổi CSS hiện đại thành thứ mà hầu hết các trình duyệt có thể hiểu được, xác định các polyfill bạn cần dựa trên trình duyệt hoặc môi trường thời gian chạy mục tiêu.
gulpfile.js
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var postcssNested = require('postcss-nested');
var postcssImport = require('postcss-import');
var autoPreFixer = require('autoprefixer');
var postcssPresetEnv = require('postcss-preset-env');
gulp.task('css', function () {
var plugins = [postcssNested,postcssImport,autoPreFixer,postcssPresetEnv];
return gulp.src('./src/style.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('./dest'));
});
cssnano giúp minify (giảm dung lượng) file CSS đầu ra
gulpfile.js
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var postcssNested = require('postcss-nested');
var postcssImport = require('postcss-import');
var autoPreFixer = require('autoprefixer');
var postcssPresetEnv = require('postcss-preset-env');
var postcssEach = require('postcss-each');
var cssNano = require('cssnano');
gulp.task('css', function () {
var plugins = [postcssNested,postcssImport,autoPreFixer,postcssPresetEnv,postcssEach,cssNano];
return gulp.src('./src/style.css')
.pipe(postcss(plugins))
.pipe(gulp.dest('./dest'));
});