当前位置: 首页 > 知识库问答 >
问题:

逐个运行gulp命令的结果与在gulp.series中运行它们的结果不同。为什么?

苗康平
2023-03-14

下面是我的gulpfile。我正在尝试从scss生成缩小的css,然后使用gulp-rev重命名它。运行gulp Clean:资产然后gulp scss,然后gulp css工作完美。但运行gulp build并不能完成这项任务。缩小的css存储在./assets/css中,但重命名的css没有存储在./public/assets中

const gulp = require('gulp');
//gulp sass converts sass to css
const sass = require('gulp-sass');
//cssnano converts css to minified form
const cssnano = require('gulp-cssnano');
//rev renames the assets by appending content hash to filenames so that the browser treats it as a new asset if content is changed
const rev = require('gulp-rev');
const path = require('path');
const del = require('del');

gulp.task('clean:assets', function(done){
    del.sync('./public/assets');
    del.sync('./assets/css');
    done();
});

gulp.task('scss', function(done){
    gulp.src('./assets/scss/**/*.scss')
    .pipe(sass())
    .pipe(cssnano())
    .pipe(gulp.dest('./assets/css'))
    done();
});

gulp.task('css', function(done){
    gulp.src('./assets/css/**/*.css', {base: path.join(process.cwd(), 'assets')})
    .pipe(rev())
    .pipe(gulp.dest('./public/assets/'))
    .pipe(rev.manifest('public/assets/rev-manifest.json',{
        base: process.cwd()+'./public/assets',
        merge: true
    }))
    .pipe(gulp.dest('./public/assets'));
    done();
});

gulp.task('build', gulp.series('clean:assets', 'scss', 'css'), function(done){
    done(); 
})

共有1个答案

秦胡媚
2023-03-14
gulp.task('scss', ()=> {
    return new Promise((resolve, reject) => {
        return gulp.src('./assets/scss/**/*.scss')
            .pipe(sass())
            .pipe(cssnano())
            .pipe(gulp.dest('./assets/css'))
            .on('end', resolve)
            .on('error', reject);
    });
});

将scss任务更改为上面,以使其正常工作。请参阅https://stackoverflow.com/A/53937286/7374508

 类似资料:
  • 问题内容: 为什么这两个操作(分别)给出不同的结果? 在最后一种情况下,实际上存在无限递归。和一样。为什么与操作不同? 问题答案: 解释“为什么”: 该操作将数组元素添加到原始数组。该操作将数组(或任何对象)插入原始数组的末尾,从而导致对该点的 self引用 (因此无限递归)。 此处的区别在于,通过连接元素来添加数组时,+操作的作用是特定的(与其他数组一样重载,请参见本章的序列)。但是,appen

  • 当前的问题是,以下SQL查询在通过phpMyAdmin SQL页面运行时查找并返回结果,但在使用PDO通过PHP脚本运行时不返回任何结果。(如未找到匹配结果) 有问题的查询: 我怀疑这与排序规则或正在使用的字符集有关,因为不使用任何特殊字符会得到预期的结果。 数据库使用的是latin1_swedish_ci排序规则。我尝试将pdo::mysql_attr_init_command设置为“设置名称'

  • 问题内容: 看着它只是说的javadocs 提交要执行的Runnable任务,并返回代表该任务的Future。Future的get方法将在成功完成后返回给定的结果。 参数: 任务-提交的任务 结果-要返回的结果 但是结果如何呢?它在那里存储什么吗?它是否仅使用结果的类型来指定类型? 问题答案: 它对结果没有任何作用-保留它。任务成功完成后,调用将返回您传递的结果。 这是Executors $ Ru

  • 由于我不想在全局范围内安装gulp,而希望运行本地gulp,所以我在package.json文件中添加了脚本,如下所示 在我的myproject文件夹中添加了一个gulpfile.js 但是现在在myproject文件夹中的命令行上,当我运行gulp和gulp lint时,我得到了一个错误

  • 我为Aeron的演示做了一些基准测试,但我发现,如果我对相同的传输使用不同的工具,我得到的结果略有不同。 例如,如果我使用HDR直方图,我得到的结果与维护人员在测试中得到的数字一致: 我的代码https://github.com/easy-logic/transport-benchmarks/blob/master/aeron-ping/src/main/java/io/easylogic/ben

  • 在Mac Zsh 错误的返回结果 在pycharm 里面运行不会报错