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
。然后,我将创建一个默认任务来调用它们并开始调试。