gulp无法在不重新启动的情况下识别typescript文件的更改

时间:2017-06-20 20:40:03

标签: angular gulp typescript2.0 gulp-watch

我在构建app的项目中有gulp任务。这是我的一个监视任务,如果我们修改任何.ts文件,它将重建整个打字稿更改。

  gulp.watch([
    path.join(conf.paths.src, '/app/**/*.js'),
    path.join(conf.paths.src, '/app/**/*.ts'),
    path.join(conf.paths.root, './index.js'),
    path.join(conf.paths.root, './lib/**/*.*')
  ], function (event) {
      gulp.start('inject');
    }
  });

下面是我的注入任务,它实际上编译了需要的文件。

function injection() {
  var injectStyles = gulp.src([
    path.join(conf.paths.tmp, '/serve/app/**/*.css'),
    path.join('!' + conf.paths.tmp, '/serve/app/vendor.css')
  ], { read: false });

  var injectScripts = gulp.src([
    path.join(conf.paths.tmp, '/serve/environment.js'),
    path.join(conf.paths.src, '/app/**/*.module.js'),
    path.join(conf.paths.src, '/app/**/*.js'),
    path.join('!' + conf.paths.src, '/app/**/*.spec.js'),
    path.join('!' + conf.paths.src, '/app/**/*.mock.js')
  ])
  .pipe($.angularFilesort()).on('error', conf.errorHandler('AngularFilesort'));

  var injectOptions = {
    ignorePath: [conf.paths.src, path.join(conf.paths.tmp, '/serve')],
    addRootSlash: false
  };

  return lazypipe()
    .pipe($.inject, injectStyles, injectOptions)
    .pipe($.inject, injectScripts, injectOptions)
    .pipe(wiredep, _.extend({}, conf.wiredep))();
};

gulp.task('inject', ['environment', 'scripts', 'styles'], function () {
  return gulp.src(path.join(conf.paths.src, '/*.html'))
    .pipe(wireapp({
      "hybridMode": conf.mode.hybrid,
      "compile": false
    }))
    .on('error', conf.errorHandler)
    .pipe(injection())
    .pipe(gulp.dest(path.join(conf.paths.tmp, '/serve')));
});

在更改为typescript文件时,这些操作正在执行,但在应用程序UI中,除非明确重新启动服务器,否则不会反映这些操作。

0 个答案:

没有答案