错误:使用gulp版本4时,gulp.start不是函数

错误:使用gulp版本4时,gulp.start不是函数,gulp,Gulp,Iam使用gulpCLI版本:2.2.1本地版本:4.0.2 节点版本为12.16.3 我的gulpfile.js代码是 'use strict'; var gulp = require('gulp'), sass = require('gulp-sass'), browserSync = require('browser-sync'), del=require('del'), imagemin = require('gulp-imagemin'), uglify = require('gul

Iam使用gulpCLI版本:2.2.1本地版本:4.0.2 节点版本为12.16.3 我的gulpfile.js代码是

 'use strict';
var gulp = require('gulp'),
sass = require('gulp-sass'),
browserSync = require('browser-sync'),
del=require('del'),
imagemin = require('gulp-imagemin'),
uglify = require('gulp-uglify'),
usemin = require('gulp-usemin'),
rev = require('gulp-rev'),
cleanCss = require('gulp-clean-css'),
flatmap = require('gulp-flatmap'),
htmlmin = require('gulp-htmlmin');

gulp.task('sass', function () {
    return gulp.src('./css/*.scss')
    .pipe(sass().on('error', sass.logError))
   .pipe(gulp.dest('./css'));
});

gulp.task('sass:watch', function () {
    gulp.watch('./css/*.scss', ['sass']);
});

gulp.task('browser-sync', function () {
 var files = [
  './*.html',
  './css/*.css',
  './img/*.{png,jpg,gif}',
  './js/*.js'
];

 browserSync.init(files, {
  server: {
     baseDir: "./"
  }
 });

});

 // Default task
gulp.task('default', gulp.series('browser-sync', function() {
  gulp.start('sass:watch');
}));
 gulp.task('clean', function() {
   return del(['dist']);
});

 gulp.task('copyfonts', function() {
   gulp.src('./node_modules/font-awesome/fonts/**/*.{ttf,woff,eof,svg}*')
  .pipe(gulp.dest('./dist/fonts'));
 });
 gulp.task('imagemin', function() {
  return gulp.src('img/*.{png,jpg,gif}')
  .pipe(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true }))
  .pipe(gulp.dest('dist/img'));
 });
  gulp.task('usemin', function() {
    return gulp.src('./*.html')
   .pipe(flatmap(function(stream, file){
    return stream
     .pipe(usemin({
          css: [ rev() ],
          html: [ function() { return htmlmin({ collapseWhitespace: true })} ],
          js: [ uglify(), rev() ],
          inlinejs: [ uglify() ],
          inlinecss: [ cleanCss(), 'concat' ]
      }))
   }))
  .pipe(gulp.dest('dist/'));
 });

 gulp.task('build',gulp.series('clean', function() {
    gulp.start('copyfonts','imagemin','usemin');
 }));
我在命令行上运行gulpbuild后得到的错误是:

  [15:38:33] Starting 'build'...
  [15:38:33] Starting 'clean'...
  [15:38:33] Finished 'clean' after 69 ms
  [15:38:33] Starting '<anonymous>'...
  [15:38:33] '<anonymous>' errored after 3.57 ms
   [15:38:33] TypeError: gulp.start is not a function
  at C:\Users\HARIKA\Desktop\bootstrapassign1\Bootstrap4\conFusion\gulpfile.js
:74:10
[15:38:33] 'build' errored after 83 m
[15:38:33]正在启动“构建”。。。
[15:38:33]开始“清洁”。。。
[15:38:33]69毫秒后完成“清洁”
[15:38:33]正在启动“”。。。
[15:38:33]“”在3.57毫秒后出错
[15:38:33]类型错误:gulp.start不是一个函数
位于C:\Users\HARIKA\Desktop\bootstrapassign1\Bootstrap4\conflusion\gulpfile.js
:74:10
[15:38:33]“构建”在83米后出错

我不知道如何解决这些错误。我甚至根据GulpVersion4的版本将一些任务更改为gulp.series()。有人能帮我解决这个错误吗?提前感谢。

替换这两项任务:

 // Default task
gulp.task('default', gulp.series('browser-sync', function() {
  gulp.start('sass:watch');
}));

 gulp.task('build',gulp.series('clean', function() {
    gulp.start('copyfonts','imagemin','usemin');
 }));
与:


gulp.start
不是gulp4+的一部分-它在v3中,尽管在v3中也没有真正批准使用。

替换这两个任务:

 // Default task
gulp.task('default', gulp.series('browser-sync', function() {
  gulp.start('sass:watch');
}));

 gulp.task('build',gulp.series('clean', function() {
    gulp.start('copyfonts','imagemin','usemin');
 }));
与:


gulp.start
不是gulp4+的一部分-它在v3中,尽管在v3中也没有真正被批准使用。

我也有同样的问题,也许找到了解决方案:

替换以下内容:

gulp.task('sass:watch', function () {
  gulp.watch('./css/*.scss', ['sass']);

// Default task
gulp.task('default', gulp.series('browser-sync', function() {
  gulp.start('sass:watch');
}));
并加上:

gulp.task('sass:watch', function() {
  gulp.watch('./css/*.scss', gulp.series(['sass']));

// Default task
gulp.task('default', gulp.parallel('browser-sync', 'sass:watch'));
根据我的发现,您必须使用
gulp.series
gulp.parallel
与gulp+4.x互换使用

现在进行第二部分更改:

gulp.task('copyfonts', function() {
  gulp.src('./node_modules/font-awesome/fonts/**/*.{ttf,woff,eof,svg}*')
  .pipe(gulp.dest('./dist/fonts'));
});
在此处添加
return

gulp.task('copyfonts', function() {
  return gulp.src('./node_modules/font-awesome/fonts/**/*.{ttf,woff,eof,svg}*')
  .pipe(gulp.dest('./dist/fonts'));
});
如前一个答案所示,完成最后一项任务:

gulp.task('build', gulp.series('clean','copyfonts','imagemin','usemin'));

希望这有帮助

我也遇到了同样的问题,也许找到了解决办法:

替换以下内容:

gulp.task('sass:watch', function () {
  gulp.watch('./css/*.scss', ['sass']);

// Default task
gulp.task('default', gulp.series('browser-sync', function() {
  gulp.start('sass:watch');
}));
并加上:

gulp.task('sass:watch', function() {
  gulp.watch('./css/*.scss', gulp.series(['sass']));

// Default task
gulp.task('default', gulp.parallel('browser-sync', 'sass:watch'));
根据我的发现,您必须使用
gulp.series
gulp.parallel
与gulp+4.x互换使用

现在进行第二部分更改:

gulp.task('copyfonts', function() {
  gulp.src('./node_modules/font-awesome/fonts/**/*.{ttf,woff,eof,svg}*')
  .pipe(gulp.dest('./dist/fonts'));
});
在此处添加
return

gulp.task('copyfonts', function() {
  return gulp.src('./node_modules/font-awesome/fonts/**/*.{ttf,woff,eof,svg}*')
  .pipe(gulp.dest('./dist/fonts'));
});
如前一个答案所示,完成最后一项任务:

gulp.task('build', gulp.series('clean','copyfonts','imagemin','usemin'));

希望这有帮助

谢谢你的帮助。但是我还是得到了一个错误(不一样)。以下任务没有完成:构建,复制字体您忘记发出异步完成信号了吗?在您的
sass:watch
copyfonts
任务中添加
return
语句,就像您在
sass
任务中所做的那样。非常感谢您,先生。我从昨天开始就在谷歌上搜索,找不到解决方案。再次感谢你。:)这些也是发出异步完成信号的方法。但是一般来说,添加
return
语句就足够了,这样做也更简单。谢谢您的帮助。但是我还是得到了一个错误(不一样)。以下任务没有完成:构建,复制字体您忘记发出异步完成信号了吗?在您的
sass:watch
copyfonts
任务中添加
return
语句,就像您在
sass
任务中所做的那样。非常感谢您,先生。我从昨天开始就在谷歌上搜索,找不到解决方案。再次感谢你。:)这些也是发出异步完成信号的方法。但一般来说,添加
return
语句就足够了。