通过gulp-watch无法正常使用babel进入ES 5

时间:2015-04-06 19:11:34

标签: javascript gulp ecmascript-6 gulp-watch babeljs

我是gulp的新手。我正在尝试设置一个手表,以便将我的src / main.js文件转换为dist / main.js文件。 Gulpfile具有以下代码

var gulp = require('gulp');
var babel = require('gulp-babel');
var watch = require('gulp-watch');
var paths = {
    babel:"src/main.js"
}

gulp.task('babel', function() {
    return gulp.src(paths.babel)
        .pipe(watch(paths.babel))
        .pipe(babel())
        .pipe(gulp.dest('dist/'))
})
gulp.task('default', ['babel']);

我的dist / main.js文件未反映src / main.js的更改。任何有关我出错的帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

请尝试以下操作(并确保执行gulp watch,而不仅仅是gulp):

var gulp = require('gulp');
var babel = require('gulp-babel');
var watch = require('gulp-watch');
var rimraf = require('rimraf');
var paths = {
  babel: 'src/main.js',
  build: 'dist'
};

gulp.task('clean', function(cb) {
  rimraf(paths.build, cb);
});

gulp.task('build', ['clean'], function() {
  return gulp
    .src(paths.babel)
    .pipe(babel())
    .pipe(gulp.dest(paths.build));
});

gulp.task('watch', ['build'], function() {
  return watch(paths.babel, function() {
    gulp.start('build');
  });
});

gulp.task('default', ['build']);

如果这不起作用,可能您的paths.babel错了。尝试将其更改为src/**/*.js

答案 1 :(得分:0)

巴贝尔任务和监视任务是分开的:

var gulp = require('gulp');
var babel = require('gulp-babel');
var watch = require('gulp-watch');
var paths = {
    babel:"src/main.js"
};

gulp.task('watch', function() {
    gulp.watch(paths.babel, ['babel']);
});

gulp.task('babel', function() {
   gulp.src(paths.babel)
        .pipe(babel())
        .pipe(gulp.dest('dist/'));
});

gulp.task('default', ['watch']);

watch会在检测到babel

的更改时执行"src/main.js"