gulp-sass


 

先是安裝

npm install --global gulp
npm install gulp-sass --save

安裝好后輸入命令行 gulp-sass -v 查看是否按照成功

gulp的用法在這里:http://www.gulpjs.com.cn/docs/getting-started/

 

粗略了解一下常用的gulp API

gulp.task(name[, deps], fn):建立任務,在命令行中輸入任務名字來執行任務;
gulp.src(globs[, options]): 輸出符合所提供的匹配模式(glob)或者匹配模式的數組(array of globs)的文件,(簡單的來說就是引入需要操作的文件)
gulp.watch(glob [, opts], tasks): 監控文件的變動;
gulp.dest(path[, options]): 能被 pipe 進來,並且將會寫文件。並且重新輸出(emits)所有數據,因此你可以將它 pipe 到多個文件夾。如果某文件夾不存在,將會自動創建它。(處理完的文件需要存放在哪里)


以下是gulp-sass官網的代碼

'use strict';
 
var gulp = require('gulp');
var sass = require('gulp-sass');
 
gulp.task('default',function() {

    gulp.task('sass', function () {
      return gulp.src('./sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(gulp.dest('./css'));
    });
     
    gulp.task('sass:watch', function () {
      gulp.watch('./sass/**/*.scss', ['sass']);
    });

});

 

在這里把編譯scss文件設置為默認執行的任務,只需cmd輸入gulp命令就能監聽scss文件的改變而編譯了。

 

從cmd的提示可以看到已經編譯成功了,可是只改了一個文件卻把目錄里面所有的文件都過一遍了。

但我只需要編譯當前修改到的文件就好了,所以稍微改了一下:

function parseScssSingleFile(file) {
    //file = file.replace(/^[^\s]*\\wxstyle/g, 'wxstyle');
    var destUrl = file.replace(/wxscss/,'release');
    var arr = destUrl.split('\\');
    destUrl = destUrl.replace(arr[arr.length - 1], '');
return gulp .src(file) .pipe( gulpScss().on('error', gulpScss.logError) ) .pipe( gulp.dest( destUrl) ) .pipe(reload({stream:true})); } gulp.watch(releaseFolder + 'wxscss/**/*.scss',function(event) { parseScssSingleFile(event.path); });

 

試了一下能運行成功了:

這里主要是使用gulp.watch()監控文件的改動,並且傳入event對象。event描述了所監控到的變動,event.path是觸發了該事件的文件路徑

把當前變動的文件路徑傳給parseScssSingleFile 就能針對當前改動到的文件進行單獨編譯了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM