0

開発プロセスで 2 つのタブを開きました (1 つはアプリケーション、もう 1 つはjasmineテスト スイート)。

したがって、2 つの browserify バンドル (このコードのように見えます) があるため、2 つの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 に答える