1 { 2 "name": "test", //項目名稱(必須) 3 "version": "1.0.0", //項目版本(必須) 4 "description": "This is for study gulp project !", //項目描述(必須) 5 "homepage": "", //項目主頁 6 "repository": { //項目資源庫 7 "type": "git", 8 "url": "https://git.oschina.net/xxxx" 9 }, 10 "author": { //項目做者信息 11 "name": "surging", 12 "email": "surging2@qq.com" 13 }, 14 "license": "ISC", //項目許可協議 15 "devDependencies": { //項目依賴的插件 16 "gulp": "^3.8.11", 17 "gulp-less": "^3.0.0" 18 } 19 }
將會安裝在node_modules的gulp-less目錄下,該目錄下有一個gulp-less的使用幫助文檔README.mdcss
爲了能正常使用,咱們還得本地安裝gulp:cnpm install gulp --save-devhtml
1 const gulp=require('gulp'); //引用gulp 2 const del=require('del'); //引用gulp刪除插件 3 const uglify=require('gulp-uglify'); //引用壓縮Js插件 4 const css=require('gulp-clean-css'); //gulp壓縮css文件 5 const rename = require("gulp-rename"); //引用重命名插件 6 7 gulp.task('hello',function () { //定義一個hello任務 8 console.log('hello') 9 }); 10 11 //task():定義任務 12 //src():源文件 13 // pipe():管道流,接通源頭文件與目標文件的輸出 14 // dest():輸出文件的目的地 15 // watch():監視文件 16 //事例: 17 // 一、複製單個文件 18 gulp.task('copyHtml',function () { 19 return gulp.src('./src/public/login.html').pipe(gulp.dest("dist/public")) 20 }); 21 22 // 二、複製多個文件 23 gulp.task('copyAllHtml',function () { 24 return gulp.src("./src/public/*.html").pipe(gulp.dest('dist/public')); 25 }); 26 27 // 三、複製指定文件 28 // [指定的文件已,指定的文件2] 29 gulp.task('copy2Js',function () { 30 return gulp.src(["./src/public/js/ajax.js",'dist/public/js/classPage.js']) 31 .pipe(gulp.dest("dist/public/js")) 32 }); 33 34 // 四、某個文件 35 // !排隊的文件 36 gulp.task("copyNoJs",function () { 37 return gulp.src(['./src/public/js/*.js','!./src/public/js/Classroom.js']) 38 .pipe(gulp.dest('dist/public/js')) 39 }); 40 41 // 五、複製多個後綴名的圖片 42 // {選項一,選項二} 43 gulp.task("copyImage",function () { 44 return gulp.src('./src/public/img/*.{png,jpg,bmp,jpeg,gif}') 45 .pipe(gulp.dest('dist/public/img')) 46 }); 47 48 // 六、執行多個任務 49 // gulp.task('任務名稱',[任務依賴的模塊],回調函數) 50 // 依賴任務之間沒有順序之分,異步執行 51 // 依賴任務之間完成後,在執行當前的回調函數 52 gulp.task('build',['copyAllHtml','copyNoJs','copyImage'],function () { 53 console.log('編譯成功') 54 }); 55 56 // 七、Watch:監視文件的變化 57 gulp.task('myWatch',function () { 58 gulp.watch('./src/public/login.html',['build']) 59 }); 60 61 // 八、刪除文件 62 gulp.task("del",function () { 63 // del('./dist/public/img/*.{jpg,png,jepg,gif}') 64 // *:全部文件 65 // **:全部文件夾 66 del(['./dist/public/js/*']); 67 del(['./dist/**/*']); 68 }); 69 70 gulp.task('default',function () { 71 gulp.start('serve') 72 73 }); 74 75 // 九、壓縮js文件 76 gulp.task('ysjs',function(){ 77 return gulp.src('./src/public/js/*.js') 78 .pipe(uglify()) 79 .pipe(gulp.dest('./src/public/js')); 80 81 82 }); 83 84 //十、 添加監聽 85 gulp.task('watch_js',function(){ 86 return gulp.watch('./src/public/js/*.js',['ysjs']) 87 88 }); 89 90 //十一、壓縮css文件 91 gulp.task('css',function () { 92 return gulp.src('./src/public/sass/*.css') 93 .pipe(css()) 94 .pipe(gulp.dest('./src/public/sass')) 95 }); 96 //添加監聽 97 gulp.task('jtCss',function () { 98 return gulp.watch('./src/public/sass/*.css',['css']) 99 }); 100 //十二、重命名css文件 101 gulp.task('reName',function () { 102 return gulp.src('./src/public/sass/*.css') 103 .pipe(rename({suffix: '.css'})) 104 .pipe(css()) 105 .pipe(gulp.dest('./src/public/sass')) 106 });