gpt4 book ai didi

javascript - 如果文件丢失,如何使 Gulp.src 失败?

转载 作者:可可西里 更新时间:2023-11-01 02:38:25 26 4
gpt4 key购买 nike

我们的 gulp 构建采用了一堆随 Bower 安装的库,然后将它们与我们分布在多个目录中的所有代码连接起来。这是它的样子:

  var jsFiles = [
sourcePath + '/config/config.js',
sourcePath + '/vendor/jquery/dist/jquery.js',
sourcePath + '/vendor/js-cookie/src/js.cookie.js',
sourcePath + '/vendor/modernizr/modernizr.js',
sourcePath + '/vendor/lodash/lodash.js',
sourcePath + '/vendor/picturefill/dist/picturefill.min.js',
sourcePath + '/templates/**/*.js',
sourcePath + '/pages/**/*.js'
],

gulp.task('build:js', ['jscs'], function() {
return gulp.src(jsFiles)
.pipe(concat('scripts.js'))
.pipe(gulpif(isProd, uglify()))
.pipe(gulp.dest(outputPath + '/webresources/js'));
});

我们的问题是,每当有人添加新库时,其他开发人员如果没有运行 bower install 来获取新组件,就会遇到问题。 scripts.js 是在没有它们的情况下构建的,因为它不会介意其中一个 glob 返回空,即使它是一个命名文件。

这个应该怎么解决?如果 glob 返回零结果,有没有办法抛出错误?

最佳答案

由于似乎没有现成的解决方案,我编写了一个模块来满足我们的需求。

files-exist模块允许您检查数组中的所有文件是否存在,如果有任何缺失则抛出错误。它在成功时返回一个相同的数组,因此很容易放置到位。

  var jsFiles = [
sourcePath + '/config/config.js',
sourcePath + '/vendor/jquery/dist/jquery.js',
sourcePath + '/vendor/js-cookie/src/js.cookie.js',
sourcePath + '/vendor/modernizr/modernizr.js',
sourcePath + '/vendor/lodash/lodash.js',
sourcePath + '/vendor/picturefill/dist/picturefill.min.js',
sourcePath + '/templates/**/*.js',
sourcePath + '/pages/**/*.js'
],

filesExist = require('files-exist'),

gulp.task('build:js', ['jscs'], function() {
return gulp.src(filesExist(jsFiles)) // Throws error if a file is missing
.pipe(concat('scripts.js'))
.pipe(gulpif(isProd, uglify()))
.pipe(gulp.dest(outputPath + '/webresources/js'));
});

关于javascript - 如果文件丢失,如何使 Gulp.src 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33209074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com