Gulp 找不到带有单一 glob 的错误文件

Gulp error File not found with singular glob

将 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
 )
});

任何帮助将不胜感激:)

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 的文档。