【问题标题】:Gulp task never definedGulp 任务从未定义
【发布时间】:2020-10-16 19:10:05
【问题描述】:

将语法从 gulp v3 更改为 gulp v4 时遇到问题。我几乎得到了代码,但发生了一个小错误。谁能帮我解决这个错误?而且我以前对 gulp 没有任何了解,这是我执行的第一个任务,希望任何人都可以帮助我解决这个问题。

const gulp = require('gulp');
const browserSync = require('browser-sync').create();
const sass = require('gulp-sass');

// Compile Sass & Inject Into Browser
function style() {
  return gulp.src(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'])
    .pipe(sass())
    .pipe(gulp.dest("src/css"))
    .pipe(browserSync.stream());
};

// Move JS Files to src/js
function js() {
  return gulp.src(['node_modules/bootstrap/dist/js/bootstrap.min.js', 'node_modules/jquery/dist/jquery.min.js', 'node_modules/popper.js/dist/umd/popper.min.js'])
    .pipe(gulp.dest("src/js"))
    .pipe(browserSync.stream());
};

// Watch Sass & Server
function watch() {
  browserSync.init({
    server: "./src"
  });

  gulp.watch(['node_modules/bootstrap/scss/bootstrap.scss', 'src/scss/*.scss'], ['sass']);
  gulp.watch("src/*.html").on('change', browserSync.reload);
  // gulp.watch("src/*.html", gulp.series(copyHtml, browserSyncReload));
};

// Move Fonts Folder to src/fonts
function fonts() {
  return gulp.src('node_modules/font-awesome/fonts/*')
    .pipe(gulp.dest("src/fonts"));
};

// Move Font Awesome CSS to src/css
function fa() {
  return gulp.src('node_modules/font-awesome/css/font-awesome.min.css')
    .pipe(gulp.dest("src/css"));
};

exports.style = style;
exports.watch = watch;
exports.fonts = fonts;
exports.fa = fa;
exports.default = series(style, watch, fonts, fa);

发生错误

 ReferenceError: series is not defined
    at Object.<anonymous> (D:\Courses\Projects\Bootstrap_projects\bs4starter\gulpfile.js:47:1)
    at Module._compile (internal/modules/cjs/loader.js:1015:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
    at Module.load (internal/modules/cjs/loader.js:879:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Module.require (internal/modules/cjs/loader.js:903:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at requireOrImport (C:\Users\sai\AppData\Roaming\npm\node_modules\gulp-cli\lib\shared\require-or-import.js:19:11)
    at execute (C:\Users\sai\AppData\Roaming\npm\node_modules\gulp-cli\lib\versioned\^4.0.0\index.js:37:3)
    at Liftoff.handleArguments (C:\Users\sai\AppData\Roaming\npm\node_modules\gulp-cli\index.js:211:24)

提前谢谢你。

【问题讨论】:

  • 您没有在命令行上指定任务,也没有定义default 任务。错误很明显。
  • 你能告诉我如何添加它吗,我对它有点陌生@crashmstr
  • 添加默认任务就在documentation - export.default = myDefaultTask
  • 您能否修改代码并将其作为答案提交。我无法完成它@crashmstr
  • 你没有指定 what 你想成为默认任务,所以我无法给你确切的代码。您已经拥有exports.styleexports.watch 等。添加 一个exports.default 并将其分配给您希望 gulp 默认为在命令行上未指定任务时的默认值。我不知道如何更清楚地解释它。

标签: gulp-4


【解决方案1】:

你没有指定默认任务,所以当你调用它而不指定任务时,gulp 会在错误消息中告诉你这一点。

https://gulpjs.com/docs/en/getting-started/creating-tasks/

过去,task() 用于将您的函数注册为任务。虽然该 API 仍然可用,但导出应该是主要的注册机制,除非在导出不起作用的边缘情况下。

这是一个示例,当 gulp 在没有指定任务的情况下运行时,会在一系列中执行 stylefontsfa

exports.default = gulp.series(style, fonts, fa);

由于您将require('gulp') 设为gulp,因此您可以使用gulp.series。我之前的示例基于 Gulp 自己的示例,他们使用 const { series } = require('gulp'); 仅导入 series 作为自己的函数。

【讨论】:

    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多