通过gulp移动typescript生成的JS文件(在运行时保存)

时间:2015-12-13 05:32:56

标签: typescript gulp asp.net-core gulp-watch

在新的ASP.NET 5项目中,有一个名为wwwroot的文件夹,通常包含可由Web请求访问的js,css和其他文件。

我的打字稿文件位于此文件夹之外。每当我保存ts文件时,我希望生成的js文件被传输到wwwroot文件夹。 这可以在构建期间轻松完成。

但是,每当我在运行时更改并保存ts文件时,我都希望这种情况发生。

我使用gulp-watch,如下所示,但它不起作用。

gulp.task('watch:ts', function () {
      gulp.watch('Contents/Scripts/**/*.ts', ['min:site:js']);
     });

min:site:js是我的任务,将js文件移动到wwwroot

gulp.task('min:site:js', function () {
return gulp
  .src('Contents/Scripts/**/*.js', { relative: true })
  .pipe(newer('wwwroot/js/'))
  .pipe(gulp.dest('wwwroot/js/'))
  .pipe(uglify())
  .pipe(rename({ extname: '.min.js' }))
  .pipe(gulp.dest('wwwroot/js/'));
});

1 个答案:

答案 0 :(得分:1)

你遇到的问题是gulp.dst正在整理流。  另外,你尝试写两次(使用gulp.dest两次)。在我看来,这没有任何意义。

相反,试试这个:

gulp.task('min:site:js', function () {
return gulp
  .src('Contents/Scripts/**/*.js', { relative: true })
  .pipe(newer('wwwroot/js/'))
  .pipe(uglify())
  .pipe(rename({ extname: '.min.js' }))
  .pipe(gulp.dest('wwwroot/js/'));
});