2

Gulp で webpack-dev-server モジュールにコールバックを追加しようとしています。コールバックの目的は、開発サーバーが開始された URL をユーザーに通知することです。問題は、バンドル プロセスが完了する前にコールバックが呼び出されることです。

機能する固定タイムアウトを追加すると、これは明らかに望ましくありません。

質問:コールバック構造に何か問題がありますか? バンドルが終了する前にそれが呼び出されるのはなぜですか?

Gulp の私のコード:

var server = new WebpackDevServer(webpack(devWebpackConfig), devServerConfig);
server.listen(options.devServerPort || 8080, 'localhost', function(err) {
  if(err) {
    console.error('[webpack-dev-server] failed to start:', err);
  } else {
    console.log('[webpack-dev-server] started:', 'Browse to http://localhost:'+ options.devServerPort +'/webpack-dev-server/');
  }
});

現在の出力:

[14:43:43] Finished 'dev' after 66 ms
[webpack-dev-server] started: Browse to http://localhost:8002/webpack-dev-server/
Hash: 638bdaa3201a4220c58e
Version: webpack 1.9.5
Time: 7315ms
                                Asset     Size  Chunks             Chunk Names
c91905265455192ab6ea13d95c9edc63.woff  42.6 kB          [emitted]  
b09bad3c727751c808f224df00c208f8.woff  99.6 kB          [emitted]  
                             index.js  4.83 MB    0, 1  [emitted]  styles, app
chunk    {0} index.js (styles) 117 kB [rendered]
.....
webpack: bundle is now VALID.

私が期待していること:

[14:43:43] Finished 'dev' after 66 ms
Hash: 638bdaa3201a4220c58e
Version: webpack 1.9.5
Time: 7315ms
                                Asset     Size  Chunks             Chunk Names
c91905265455192ab6ea13d95c9edc63.woff  42.6 kB          [emitted]  
b09bad3c727751c808f224df00c208f8.woff  99.6 kB          [emitted]  
                             index.js  4.83 MB    0, 1  [emitted]  styles, app
chunk    {0} index.js (styles) 117 kB [rendered]
...
webpack: bundle is now VALID.
[webpack-dev-server] started: Browse to http://localhost:8002/webpack-dev-server/

アラン

4

2 に答える 2

1

「done」プラグインdevWebpackConfigを使用するように設定してみてください。

var compiler = webpack(devWebpackConfig);
compiler.plugin('done', function() {
  console.log("started: Browse to http://localhost:8002/webpack-dev-server/")
});

var server = new WebpackDevServer(compiler);
server.listen(options.devServerPort || 8080, 'localhost', function(err) {
  if (err) { console.error('[webpack-dev-server] failed to start:', err); }
});
于 2015-10-17T14:56:54.967 に答える