javascript - gulp-sass如何只编译修改过的scss文件?
PHP中文网
PHP中文网 2017-04-11 09:08:28
[JavaScript讨论组]

目前我的代码如下:

gulp.task('sass', function() {
    gulp.src('a/static/sass/*')
        .pipe(changed('a/static/css'))
        .pipe(sass())
        .pipe(gulp.dest('a/static/css'))
        ...

但是似乎还是编译了所有的.scss文件,我看了生成文件的修改时间。请问要如何只编译修改过的scss文件?
另外想知道下,gulp-changed的工作原理,到底是如何对比生成的文件的?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
大家讲道理

gulp.src('a/static/sass/*')这里需要指定文件扩展名吧。

只编译修改过的可以用监听来实现
`gulp.task('watch', function() {

gulp.watch('a/static/sass/*.scss', 'sass');

});`

黄舟
gulp.task('sass', function() {
    gulp.src('a/static/sass/*')
        .pipe(changed('a/static/css'))
        .pipe(sass())
        .pipe(gulp.dest('a/static/css'))

这是你写的编译所有scss文件的一个任务

你可以在

function parseSingleFile(file){
    //sass编译一个scss文件的方法
    return 
        gulp.src(file)
        .pipe(changed('a/static/css'))
        .pipe(sass())
        .pipe(gulp.dest('a/static/css'))
}       
gulp.watch("a/static/sass/*.scss", function(e){
    console.log('\n文件改变的路径为' + e.path);//e.path 比如e://a/static/sass/demo.scss
    parseSingleFile(e.path);
  });        
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号