Gulp抛出语法错误,可能是编译依赖项

Gulp抛出语法错误,可能是编译依赖项,gulp,Gulp,我有以下吞咽文件: var paths = { all: ['*.js', '**/*.js', 'index.html'], js: ['*.js', '**/*.js'], html: 'index.html', dist: 'dist' }; var gulp = require("gulp"); var babel = require("gulp-babel"); gulp.task("default", function () { gulp.

我有以下吞咽文件:

var paths = {
    all: ['*.js', '**/*.js', 'index.html'],
    js: ['*.js', '**/*.js'],
    html: 'index.html',
    dist: 'dist'
};

var gulp = require("gulp");
var babel = require("gulp-babel");

gulp.task("default", function () {
    gulp.src(paths.html)
        .pipe(gulp.dest(paths.dist));
    return gulp.src(paths.js)
        .pipe(babel())
        .pipe(gulp.dest(paths.dist));
});

gulp.task('watch', function(){
    gulp.watch(paths.all, ['default']);
});
当我运行它时,我得到了这个错误

 SyntaxError: d:/project_folder/node_modules/gulp-babel/node_modules/gulp-util/node_modules/beeper/index.js: 'return' outside of function (9:1) ...`

我在某个地方读到,我不应该编译依赖项。我只是大口大口地跑,没有后面的旗子。所以我不知道是不是我编译的。但吞咽似乎很慢,因为它需要几秒钟才能完成第一项任务。如何消除这个错误?我的依赖项有问题吗?

是的,您当前包含的所有.js文件都来自当前目录,而不是源目录。您的应用程序代码(假设
app.js
)将通过使用
common js
要求“包括”您的依赖项,例如:

var request = require('request');
gulp.task("webpack", function(callback) {
    // run webpack
    webpack({
        // configuration
    }, function(err, stats) {
        if(err) throw new gutil.PluginError("webpack", err);
        gutil.log("[webpack]", stats.toString({
            // output options
        }));
        callback();
    });
});
为了实际映射
require
语句,您需要使用模块加载器或打包器,例如:或

以下吞咽任务将解决模块错误:

var paths = {
    all: ['./src**/*.js', 'index.html'],
    js: ['./src/**/*.js'],
    html: 'index.html',
    dist: 'dist'
};

var gulp = require('gulp');
var babel = require('gulp-babel');

gulp.task('default', function () {
    gulp.src(paths.html)
        .pipe(gulp.dest(paths.dist));
    return gulp.src(paths.js)
        .pipe(babel())
        .pipe(gulp.dest(paths.dist));
});

gulp.task('watch', function(){
    gulp.watch(paths.all, ['default']);
});
这只包括
src
文件夹中的所有
.js
文件,而不是
***.js
,它将包括每个文件夹中的所有
*.js
文件,包括
节点模块
鲍尔\u组件

关于模块加载:

您可能希望使用加载器任务捆绑所有客户端代码,而不是将它们复制到
dist
,例如:

var request = require('request');
gulp.task("webpack", function(callback) {
    // run webpack
    webpack({
        // configuration
    }, function(err, stats) {
        if(err) throw new gutil.PluginError("webpack", err);
        gutil.log("[webpack]", stats.toString({
            // output options
        }));
        callback();
    });
});

是的,您当前包含的是当前目录中的所有.js文件,而不是源目录中的所有.js文件。您的应用程序代码(假设
app.js
)将通过使用
common js
要求“包括”您的依赖项,例如:

var request = require('request');
gulp.task("webpack", function(callback) {
    // run webpack
    webpack({
        // configuration
    }, function(err, stats) {
        if(err) throw new gutil.PluginError("webpack", err);
        gutil.log("[webpack]", stats.toString({
            // output options
        }));
        callback();
    });
});
为了实际映射
require
语句,您需要使用模块加载器或打包器,例如:或

以下吞咽任务将解决模块错误:

var paths = {
    all: ['./src**/*.js', 'index.html'],
    js: ['./src/**/*.js'],
    html: 'index.html',
    dist: 'dist'
};

var gulp = require('gulp');
var babel = require('gulp-babel');

gulp.task('default', function () {
    gulp.src(paths.html)
        .pipe(gulp.dest(paths.dist));
    return gulp.src(paths.js)
        .pipe(babel())
        .pipe(gulp.dest(paths.dist));
});

gulp.task('watch', function(){
    gulp.watch(paths.all, ['default']);
});
这只包括
src
文件夹中的所有
.js
文件,而不是
***.js
,它将包括每个文件夹中的所有
*.js
文件,包括
节点模块
鲍尔\u组件

关于模块加载:

您可能希望使用加载器任务捆绑所有客户端代码,而不是将它们复制到
dist
,例如:

var request = require('request');
gulp.task("webpack", function(callback) {
    // run webpack
    webpack({
        // configuration
    }, function(err, stats) {
        if(err) throw new gutil.PluginError("webpack", err);
        gutil.log("[webpack]", stats.toString({
            // output options
        }));
        callback();
    });
});

首先,我将您的
默认任务分为两个任务:
编译html
编译js
。然后我将创建一个
default
任务来调用它们并开始调试。首先,我将您的
default
任务分为两个任务:
compilehtml
compilejs
。然后,我将创建一个
默认任务
来调用它们并开始调试。