【问题标题】:Gulp error File not found with singular globGulp 错误文件找不到单数 glob
【发布时间】:2022-01-06 10:13:57
【问题描述】:

将 gulp 3 更改为 4 后,当我尝试运行 gulp build 时收到错误消息:

Error: File not found with singular glob: /assets/css/argon.css (if this was purposeful, use `allowEmpty` option)

该代码之前在 gulp 3 上运行(正如我被告知的那样),我进行了一些更改以便能够与 gulp 4 一起使用。在所有任务正确运行后收到错误。

文件位于它要查找的位置:

这是我的 gulpfile.js:

var autoprefixer = require('gulp-autoprefixer');
var browserSync = require('browser-sync').create();
var csscomb = require('gulp-csscomb');
var cleanCss = require('gulp-clean-css');
var cssnano = require('gulp-cssnano');
var composer = require('gulp-uglify/composer');
var concat = require('gulp-concat');
var del = require('del');
var imagemin = require('gulp-imagemin');
var htmlPrettify = require('gulp-html-prettify');
var gulp = require('gulp');
var gulpIf = require('gulp-if');
var gulpRun = require('gulp-run');
var gulpUtil = require('gulp-util');
var npmDist = require('gulp-npm-dist');
var postcss = require('gulp-postcss');
var runSequence = require('gulp4-run-sequence');
// var sass = require('gulp-sass');
var uglifyEs = require('uglify-es');
var uglify = composer(uglifyEs, console);
var rename = require('gulp-rename');
var useref = require('gulp-useref-plus');
var wait = require('gulp-wait');
var sass = require('gulp-sass')(require('sass'));


// Define paths

var paths = {
 dist: {
     base: 'dist',
     img:  'dist/assets/img',
     libs: 'dist/assets/vendor'
 },
 base: {
     base: './',
     node: 'node_modules'
 },
 src: {
     base: './',
     css:  'assets/css',
     html: '**/*.html',
     img:  'assets/img/**/*.+(png|jpg|gif|svg)',
     js:   'assets/js/**/*.js',
     scss: 'assets/scss/**/*.scss'
 }
}

// Compile SCSS

gulp.task('scss', async function() {
return gulp.src(paths.src.scss)
 .pipe(wait(500))
 .pipe(sass().on('error', sass.logError))
 .pipe(postcss([require('postcss-flexbugs-fixes')]))
 .pipe(autoprefixer({
     browsers: ['> 1%']
 }))
 .pipe(csscomb())
 .pipe(gulp.dest(paths.src.css))
 .pipe(browserSync.reload({
     stream: true
 }));
});

// Minify CSS

gulp.task('minify:css', async function() {
return gulp.src([
     paths.src.css + '/argon.css'
 ])
 .pipe(cleanCss())
 .pipe(rename({ suffix: '.min' }))
 .pipe(gulp.dest(paths.dist.base + '/css'))
});

// Concat JS files

gulp.task('concat:js', async function(done) {

 files = [
     paths.src.base + '/assets/js/components/license.js',
     paths.src.base + '/assets/js/components/layout.js',
     paths.src.base + '/assets/js/components/init/*js',
     paths.src.base + '/assets/js/components/custom/*js',
     paths.src.base + '/assets/js/components/maps/*js',
     paths.src.base + '/assets/js/components/charts/*js',
     paths.src.base + '/assets/js/components/vendor/*js'
 ];

 return gulp
     .src(files)
     .pipe(concat("argon.js"))
     .pipe(gulp.dest(paths.dist.base + '/js'));

 done();
});

// Minify JS

gulp.task('minify:js', async function(cb) {
 return gulp.src([
         paths.dist.base + '/js/argon.js'
     ])
     .pipe(uglify())
     .pipe(rename({ suffix: '.min' }))
     .pipe(gulp.dest(paths.dist.base + '/js'))
});

// Live reload

gulp.task('browserSync', async function() {
 browserSync.init({
     server: {
         baseDir: [paths.src.base, paths.base.base]
     },
 })
});

// Watch for changes

gulp.task('watch', gulp.series('browserSync', 'scss', async function() {
 gulp.watch(paths.src.scss, ['scss']);
 gulp.watch(paths.src.js, browserSync.reload);
 gulp.watch(paths.src.html, browserSync.reload);
}));

// Clean

gulp.task('clean:dist', async function() {
 return del.sync(paths.dist.base);
});

// Copy CSS

gulp.task('copy:css', async function() {
 return gulp.src([
     paths.src.base + '/assets/css/argon.css'
 ])
 .pipe(gulp.dest(paths.dist.base + '/css'))
});

// Copy JS

gulp.task('copy:js', async function() {
 return gulp.src([
     paths.src.base + '/assets/js/argon.js'
 ])
 .pipe(gulp.dest(paths.dist.base + '/js'))
});

// Build

gulp.task('build', async function(callback) {
 runSequence('clean:dist', 'scss', 'copy:css', 'copy:js', 'concat:js', 'minify:js', 'minify:css',
     callback);
});

// Default

gulp.task('default', async function(callback) {
 runSequence(['scss', 'browserSync', 'watch'],
     callback
 )
});

任何帮助将不胜感激:)

【问题讨论】:

    标签: javascript css node.js sass gulp


    【解决方案1】:

    copy:css 你有这行:

    paths.src.base + '/assets/css/argon.css'

    显然你的错误在哪里。问题是你的paths.src.base 被定义为

    base: './' 你要添加/assets/css/argon.css 所以你最终会得到

    .//assets/css/argon.css 注意前面的两个反斜杠。

    去掉/assets/... 中的前导反斜杠并检查您的其余代码是否存在相同的问题。


    此外,由于您使用的是 gulp4,请摆脱 runSequence - 查看 gulp.series 的文档。

    【讨论】:

      猜你喜欢
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 2014-06-04
      • 2021-06-16
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      相关资源
      最近更新 更多