2016-05-18 11 views
1

Angular SPAとブラウザ同期を使用しています。サイトのサービスは次のようになります。Angular SPAのブラウザ同期

gulp.task('serve', function() { 
    browserSync.init(null, { 
    server: { 
     baseDir: './', 
     middleware: [historyApiFallback()] 
    } 
    }); 
}); 

これは問題なく動作します。 historyApiFallback(npmモジュール)を使用すると、新しいURLパスに行くときにブラウザ同期がフリークアウトしないようにするには、index.htmlのサービスを続行する必要があります。

問題は、ファイルを見ることです。私はこれを試してみた:build-cssタスクは細かいトリガーするため

gulp.task('watch', function() { 
    watch('./src/scss/**/*.scss', function() { 
    runSequence('build-css', browserSync.reload); 
    }); 
}); 

時計のタスクは、作業を行います。その後、コンソールにはReloading Browsers...が記録され、ハングするだけです。ブラウザは決してCSSの注入やリロードを取得しません。私はここで間違って何をしていますか?

私はgulp-watchを故意にネイティブのガルプウォッチではないことに注意してください。

答えて

2

lite-serverを使用することをおすすめします。 BrowserSyncを簡単にカスタマイズできるラッパーで、SPAを簡単に処理できます(履歴APIを設定する必要はありません)。

package.jsonscriptsオブジェクトにエントリを単純に追加し、次のコマンドを実行することで使用できます。npm run dev

"scripts": { "dev": "lite-server" },

モジュールは自動的にファイルの変更を監視して、同期を維持します。だから、build-cssタスクが実行された後で(出力ファイルが変更されるため)、ブラウザを更新するので、あなたのgulpで動作します。

私は現在、角度1、角度2、およびvue.jsで使用しており、すべてでうまく機能しています。

+0

ありがとうございました。これは評判の良い情報源からのものです(John Papa)。自分自身や他の人がこの答えを見つけられるようにするために、npmパッケージがこのような状況でどのように実行されるかの簡単な例を投稿できますか? – Coop

+0

@Coop私は答えを編集しました。 –

関連する問題