Gulp cho người mới bắt đầu

Tram Ho

Gulp là tools giúp ta viết một số task để có thể đấy nhanh qúa trình phát triển Web.

Nó thường được dùng để

  • Spinning up web server
  • Reload browser khi có file được save.
  • Sử dụng SASS hoặc LESS
  • Optimizing assets như CSS, JS, images

Sử dụng thành thạo Gulp sẽ giúp ta thao tác rất nhanh trong việc development web.

Tuy nhiên thì do không phải sử dụng thường xuyên nên hiện tại mình chỉ sử dụng để Code front-end cho nhanh.

Ở bài viết này mình sẽ build 1 bản template để có thể sử dụng nhanh cho các side-project front-end

Install Gulp

Để có thể instal Gulp, cần phải có Nodejs đã được cài đặt sẵn trong máy tính. Nếu chưa cài đặt Nodejs có thể cài ở trên trang chủ Nodejs.

Sau khi cài đặt xong Nodejs thì cài đặt gulp. Flag -g để cài đặt gulp global, tiện lợi hơn cho việc run task.

Tạo project và install dependencies

  • Folder stucture sẽ như sau

Giải thích sơ qua về cấu trúc folder này.
Folder App để lưu các file source, trong khi dist/ để lưu các file nén lại sử dung cho production.

Gulfile.js là file để cấu hình gulp.

Writing first gulp task

Theo định nghĩa thì gulp là 1 function async, có thể tạo đơn giản như sau

Khi chạy gulp hello sẽ in ra log.

Cụ thể thì gulp task có dạng

gulp.src chỉ định file sẽ chạy task đó, gulp.pipe là các plugin sẽ được chạy trên file, gulp.dest quy định output

Preprocess với gulp

Có thể compile Sass, LESS qua csss với gulp như sau

Cụ thể thì gulp task này sẽ biên dịch styles.scss và dịch qua app/css/styles.css

Glob trong gulp

Gulp có sự dụng 1 pattern riêng để có thể match các file. Các pattern thường đuọc sử dụng trong gulp

  • *.scss Tất cả các file .scss trong root foldẻ
  • **/.scss Match tất cả các file đuôi scss trong root folder và cả trong folder con
  • !not-me.scss: Loại not-me.scss ra khỏi list cac file được chọn
  • *.+(scss|sass): Tất cả các file kết thúc bằng scss hoặc sass trong root foldẻ

Task của chúng ta có thẻ được update như sau

Hiện tại khi muốn compile sass qua css chúng ta đều phải gọi gulp sass. Gulp có cho phép ta compile file mỗi khi file được thay đổi với gulp.watch

Watching file

Chú ý ở đây mình sử dụng gulp 3.x nên cú pháp sẽ khác so với 4.x . Với 4.x các bạn cần phải sửa cú pháp.

Đây là cu pháp của watch file sử dụng gulp

Và ta có thể viết watch task với sass như sau

Reloading page với browsersync

Hiện tại chúng ta đã có thể tự động compile sass -> css mỗi lần thay đổi file. Tuy nhiên nếu chỉ dừng lại ở đây thì vẫn chưa thực sự speed up quá trình phát triển. Gulp kết hợp với browsersync sẽ giúp ta có thể reload lại page mỗi lần thay đổi file sass

Config

Hiện giờ chúng ta cần làm là có thể start browsersync, Compile lại mỗi khi có thay đổi trên file, Sau đó reload lại page. Chúng ta có thể làm như sau

Task Watch sẽ cần 2 task ‘browserSync’, ‘sass’ chạy trước.

Nếu tìm hiểu thêm 1 chút thì ta hoàn toàn có thể làm điều tương tự với JS, html

Chúng ta hoàn toàn có thể làm thêm nhiều thứ khác với Gulp như

  • Nén Css, JS thành 1 file trước khi cho lên production
  • Nén images
  • Clean auto-generated file

Vì mục đich ban đầu của mình là tạo 1 side-templte để code FE nên mình sẽ dừng ở đây. Những phần trên bạn có thể tham khảo thêm tại https://css-tricks.com/gulp-for-beginners/ . Và còn rất rất nhiều thứ có thể thực hiện với gulp để tăng tốc độ phát triển phần mềm.

Có 1 chú ý là bạn nên sử dụng gulp 3.x . Mình đã thử migrate lên 4.x nhưng do không sự dụng quen nên bị lỗi khá nhiều cú pháp nhưng hiện tại hướng dẫn migrate lên 4.x mình thấy vẫn còn khá sơ sài

OK. Cám ơn các bạn đã theo dõi

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo