gulp進階插件 -- gulp-babel、gulp-postcss

gulp是一個流式構建系統(把源代碼生成用戶可以使用的目標的自動化工具),是基於Node.js實現構建,開發者可以使用它在網站開發過程中自動執行常見任務,比如編譯預處理CSS,壓縮JavaScript,轉化es6語法等。

gulp本身雖然不能完成很多任務,但它有大量插件可用,開發者可以訪問插件頁面或者在npm搜索gulpplugin就能看到各式各樣的插件。針對自己需要實現的功能尋找合適的插件。

gulp與grunt對比

  • grunt定義任務的時候需要有大量的配置,會引用大量你實際上並不需要的對象屬性。gulp在同樣的任務裏也許只有幾行就可以實現了。
  • grunt會比gulp更加頻繁地操作文件系統,所以使用數據流的Gulp總是比Grunt快。對於一個小的LESS文件,gulpfile.js通常需要6ms,而gruntfile.js則需要大概50ms——慢8倍多。這只是個簡單的例子,對於長的文件,這個數字會增加得更顯著。

gulp與webpack對比

  • gulp與webpack的對比(側重點不一樣),並沒有太多的可比性。gulp是一種能夠優化前端的開發流程的工具,而webPack是一種模塊化的解決方案
  • gulp側重於前端開發的整個過程的控制管理(像是流水線),我們可以通過給gulp配置不同的task(比如啓動server、sass/less預編譯、文件的合併壓縮等等)來讓gulp實現不同的功能,從而構建整個前端開發流程
  • gulp是對整個過程進行控制,所以在其配置文件(gulpfile.js)中配置的每一個task,對項目中該task所配置路徑下所有的資源都可以管理。
  • webpack有人也稱之爲模塊打包機,由此也可以看出webpack更側重於模塊打包。webpack管理資源的方式和gulp是不同的,它是根據模塊的依賴關係進行靜態分析,然後將這些模塊按照指定的規則生成對應的靜態資源(如下圖)。

glup的一些應用

一、把es6轉化es5

主要插件:gulp-babel

步驟:

1.安裝 Gulp

npm install gulp --save-dev

2.安裝gulp-babel,babel-core 和babel-preset-es2015

npm install [email protected] babel-core babel-preset-es2015 --save-dev

注:gulp-babel版本不能超過8.0.0,否則會error

3.gulp配置:

在根目錄下新增gulpfile.js文件,並創建task

var gulp = require("gulp");

var babel = require("gulp-babel");

gulp.task("default", function () {

return gulp.src("src/*.js")// ES6 源碼存放的路徑

.pipe(babel())

.pipe(gulp.dest("dist")); //轉換成 ES5 存放的路徑

});

4.babel配置:

在根目錄下新增 .babelrc。內容如下:

{

"presets": ["es2015"]

}

5.es6文件測試:

在根目錄下的src文件夾下新增testBabel.js文件。內容如下:

var a = `test es6`;

6.執行gulp

gulp

7.在dist文件夾下找到轉化之後的js文件,es6模板字符串的語法被轉化爲es5語法

 

二、css前綴修正

主要插件:gulp-postcss、autoprefixer

步驟:

1.安裝gulp-postcss插件

npm install gulp-postcss --save-dev

2.安裝autoprefixer插件

npm install autoprefixer --save-dev

3.安裝browsers

npm install -g bower

4.在根目錄下新增gulpfile.js文件,並創建task:

var gulp = require('gulp'),

postcss = require('gulp-postcss'),

autoprefixer = require('autoprefixer');



gulp.task('autoprefixer', function(cb) {

gulp.src('./src/css/test.css')

//修正css前綴

.pipe(postcss())

.pipe(gulp.dest('./dist/css'))

cb();

});

5.css測試文件

在根目錄下的src/css文件夾下創建test.css。內容如下:

div{

display: flex;

}

6.在根目錄下的src/css文件夾下創建postcss.config.js。內容如下:

module.exports = {

plugins: {

'autoprefixer': {browsers: 'last 5 version'}

}

}

7.執行gulp autoprefixer

gulp autoprefixer

8.在build/css目錄下找到test.css文件,此時css樣式被自動加上了不同瀏覽器內核的兼容寫法

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章