1 $ npm install gulp -g
查看是否安裝成功gulp -v,出現版本號即爲正確安裝。javascript
先經過cd命令行進入到本地項目目錄css
1 npm install —-save-dev gulp
此時文件下多了個node_modules的文件夾html
gulp 經常使用插件(每一個本地項目都須要單獨安裝插件,固然,你也能夠把其它項目的插件拷貝過去)前端
前端項目須要的功能:
一、圖片(壓縮圖片支持jpg、png、gif)
二、樣式 (支持sass 同時支持合併、壓縮、重命名)
三、javascript (檢查、合併、壓縮、重命名)
四、html (壓縮)
五、客戶端同步刷新顯示修改
六、構建項目前清除發佈環境下的文件(保持發佈環境的清潔)java
經過gulp plugins,尋找對於的gulp組件
gulp-imagemin: 壓縮圖片
gulp-ruby-sass: 支持sass
gulp-minify-css: 壓縮css
gulp-jshint: 檢查js
gulp-uglify: 壓縮js
gulp-concat: 合併文件
gulp-rename: 重命名文件
gulp-htmlmin: 壓縮html
gulp-clean: 清空文件夾 gulp-cache 圖片緩存,只有圖片替換了才壓縮 gulp-livereload 自動刷新頁面node
更具須要選擇,更多插件能夠看這裏gulpjs.com/plugins/npm
1 npm install gulp-util gulp-imagemin gulp-ruby-sass gulp-minify-css gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean gulp-livereload tiny-lr --save-dev
/** * 組件安裝 * npm install gulp-util gulp-imagemin gulp-ruby-sass gulp-minify-css gulp-jshint gulp-uglify gulp-rename gulp-concat gulp-clean gulp-livereload tiny-lr --save-dev */ // 引入 gulp及組件 var gulp = require('gulp'), //基礎庫 imagemin = require('gulp-imagemin'), //圖片壓縮 sass = require('gulp-ruby-sass'), //sass autoprefixer = require('gulp-autoprefixer'),//自動添加css前綴 minifycss = require('gulp-minify-css'), //css壓縮 jshint = require('gulp-jshint'), //js檢查 uglify = require('gulp-uglify'), //js壓縮 rename = require('gulp-rename'), //重命名 concat = require('gulp-concat'), //合併文件 cache = require('gulp-cache'), //只有圖片替換了才壓縮(gulp-cache) clean = require('gulp-clean'); //清空文件夾 // HTML處理 gulp.task('html', function() { var htmlSrc = './src/*.html', htmlDst = './dist/'; return gulp.src(htmlSrc) .pipe(gulp.dest(htmlDst)) }); // 樣式處理 gulp.task('css', function () { var cssSrc = './src/scss/*.scss', cssDst = './dist/css/'; return sass(cssSrc, { style: 'expanded' }) .pipe(gulp.dest(cssDst)) .pipe(rename({ suffix: '.min' })) .pipe(minifycss()) .pipe(gulp.dest(cssDst)); }); // 圖片處理 gulp.task('images', function(){ var imgSrc = './src/images/**/*', imgDst = './dist/images/'; return gulp.src(imgSrc) .pipe(imagemin()) .pipe(gulp.dest(imgDst)); }); // 建立js壓縮任務 gulp.task('js', function () { var jsSrc = './src/js/*.js', jsDst ='./dist/js/'; return gulp.src(jsSrc) .pipe(concat('main.js')) .pipe(gulp.dest(jsDst)) .pipe(rename({ suffix: '.min' })) .pipe(uglify()) .pipe(gulp.dest(jsDst)); }); // 清空圖片、樣式、js gulp.task('clean', function() { return gulp.src(['./dist/css', './dist/js', './dist/images'], {read: false}) .pipe(clean()); }); // 默認任務 清空圖片、樣式、js並重建 運行語句 gulp gulp.task('default', ['clean'], function(){ return gulp.start('html','css','images','js'); }); // 監放任務 運行語句 gulp watch gulp.task('watch',function(){ // 監聽html gulp.watch('./src/*.html', function(event){ gulp.run('html'); }) // 監聽css gulp.watch('./src/scss/*.scss', function(){ gulp.run('css'); }); // 監聽images gulp.watch('./src/images/**/*', function(){ gulp.run('images'); }); // 監聽js gulp.watch('./src/js/*.js', function(){ gulp.run('js'); }); });
四、運行:gulp
能夠單獨運行某一個任務設計模式
gulp default gulp watch
也能夠運行整個任務瀏覽器
gulp
gulp基礎語法
gulp經過gulpfile文件來完成相關任務,所以項目中必須包含gulpfile.js
gulp有五個方法:src、dest、task、run、watch
src和dest:指定源文件和處理後文件的路徑
watch:用來監聽文件的變化
task:指定任務
run:執行任務
遇到編譯問題注意看官方文檔