0

我有一个现有的项目,我使用了React 16.9. 现在,我想实现Gulp 4.0.1在服务器中构建它。我在 Windows 10 中运行。

在我的组件中,我正在使用import form

我尝试使用这个 gulpfile.js,它非常简单

var gulp = require('gulp'),
  browserify = require('browserify'),
  source = require('vinyl-source-stream'),
  buffer = require('vinyl-buffer');

var BUILD_DIR = 'buildtest/';

function compile() {
  var bundler = browserify('src/index.js');

  return bundler
    .transform('babelify', { presets: ['es2015', 'react'] })
    .bundle()
    .pipe(source('index.js'))
    .pipe(buffer())
    .pipe(gulp.dest(BUILD_DIR));
}

gulp.task('build:js', function() {
  return compile();
})

gulp.task('build', ['build:js'])

现在通过运行gulp命令它给了我这个错误:

λ gulp
assert.js:350
    throw err;
    ^

AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (D:\myprojectfolderpath\node_modules\undertaker\lib\set-task.js:10:3)
    at Gulp.task (D:\myprojectfolderpath\node_modules\undertaker\lib\task.js:13:8)
    at Object.<anonymous> (D:\myprojectfolderpath\gulpfile.js:84:6)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
4

1 回答 1

0

根据 gulp 的任务文档 gulp.task([taskName], taskFunction)第二个参数,“taskFunction”需要使用 agulp.series()gulp.parallel.

在 4.0 之前,可以像您一样定义任务,但在 4.0 中发生了变化。

改成gulp.task('build', ['build:js'])应该gulp.task('build', gulp.series('build:js'))可以解决问题。

于 2020-02-24T13:13:03.507 回答