0

我在开发过程中打开了 2 个选项卡(一个带有应用程序,第二个带有jasmine测试套件)。

所以,我有 2 个 browserify 包(看起来像这段代码),所以,我需要两个gulp-livereload实例。我就是这样做的:

var livereloadTestSuite = require('gulp-livereload');
var livereloadDeveloperSuite = require('gulp-livereload'); // port 35728

    appBundler.bundle()
      .on('error', gutil.log)
      .pipe(source('application.js'))
      .pipe(gulpif(!options.development, streamify(uglify())))
      .pipe(gulp.dest(options.dest))
      .pipe(gulpif(options.development, livereloadDeveloperSuite())) // this line
      .pipe(notify(function () {
        console.log('APP bundle built in ' + (Date.now() - start) + 'ms');
      }));

  testBundler.bundle()
    .on('error', gutil.log)
    .pipe(source('specs.js'))
    .pipe(gulp.dest('./build/'))
    .pipe(livereloadTestSuite())
    .pipe(notify(function () {
      console.log('TEST bundle built in ' + (Date.now() - start) + 'ms');
    }));

gulp.task('default', ['buildDependencies'], function () {
  livereloadTestSuite.listen();
  livereloadDeveloperSuite.listen({ port: 35728, host: 'localhost' });

  // calling bundler & testBundler methods

茉莉花测试套件有这条线

<script src="http://localhost:35729/livereload.js?snipver=1"></script>

而应用程序测试套件有这条线

<script src="http://localhost:35728/livereload.js?snipver=1"></script>

Jasmine 测试套件在重新捆绑时重新加载成功,但开发套件根本不重新加载。我不知道如何解决这个问题

4

1 回答 1

0

使用所需 nodejs 模块的删除缓存完成:

var livereloadTestSuite = require('gulp-livereload');
delete(require.cache[require.resolve('gulp-livereload')]);
var livereloadDeveloperSuite = require('gulp-livereload');
于 2015-09-24T08:31:54.337 回答