2016-03-22 7 views
18

webpackで基本的な反応アプリケーションをセットアップしましたが、webpack-dev-serverが正しく動作しませんでした。Webpack-dev-serverはバンドル有効メッセージを表示した後でもバンドルしていません

私はwebpack-dev-serverをグローバルにインストールし、ホットリロードが必要なので、コマンドsudo webpack-dev-server --hotを実行しようとしました。

プロジェクトはちょうどwebpack cmdで正常に動作しているようです。それは私のビルドフォルダにビルドし、それはいくつかのサーバーを介して動作させることができますが、それはwebpack-dev-serverで動作しません。ターミナルからビルドプロセスが完了してエラーがスローされずに完了しました。[webpack: bundle is now VALID.]と実際には正しく見ています。これは変更によってビルドプロセスがトリガーされますが、実際にはビルドされません.js]。私は全体の設定を変更しようとしたが、まだ解決された問題を得ることができませんでした。

誰かが助けてくれれば幸いです。

以下は私のwebpack.config.jsファイルです。

var path = require('path'); 

module.exports = { 
    devtool: '#inline-source-map"', 

    watch: true, 
    colors: true, 
    progress: true, 

    module: { 
     loaders: [{ 
      loader: "babel", 
      include: [ 
       path.resolve(__dirname, "src"), 
      ], 
      test: /\.jsx?$/, 
      query: { 
       plugins: ['transform-runtime'], 
       presets: ['es2015', 'react', 'stage-0'], 
      } 
     }, { 
      loader: 'style!css!sass', 
      include: path.join(__dirname, 'src'), 
      test: /\.scss$/ 
     }] 
    }, 

    plugins: [], 
    output: { 
     path: path.join(__dirname, 'build/js'), 
     publicPath: '/build/', 
     filename: '[name].js' 
    }, 
    entry: { 
     bundle: [ 
      './src/index.js' 
     ] 
    }, 

    devServer: { 
     contentBase: "./", 
     inline: true, 
     port: 8080 
    }, 
}; 

答えて

35

私は自分で解決した問題を持っています。黙って聞こえるが、問題はoutputオブジェクトの下のpublicPathであった。それは私の場合、私はWebPACKのファイルを提供している場所を確認しなければならなかったでは、すなわち、代わりにちょうど/build/

output: { 
    path: path.join(__dirname, 'build/js'), 
    publicPath: '/build/js', // instead of publicPath: '/build/' 
    filename: '[name].js' 
}, 
+0

ありがとう!同じ問題を抱えていて、ツイートやドキュメントがこれを言及していない!乾杯! – Ash

6

webpack-dev-serverは、メモリからbundle.jsを提供します。実行するとファイルは生成されません。したがって、このシナリオではbundle.jsはファイルとして存在しません。

たとえば、bundle.jsを使用してサイズを最適化したり、運用環境のデプロイメントをテストしたりすることができない場合は、webpackコマンドを使用してwebpackで生成し、運用モードで提供してください。

+1

こんにちは..私はファイルが生成されないという事実を認識しています。私の場合は、メモリからのサービスではない、つまり、私は自分のlocalhost上の更新を取得していない。 –

+1

この場合、htmlのscriptタグのbundle.jsのパスが正しいことを再度確認してください。 – Mark

+1

はい、その正しいと私はそれが私が 'webpack'をしている間働いている理由だと思う。 。私の場合、 'build/js/bundle.js' –

12

pathプロパティと一致する必要があります。

あなたはそれを見ることができます: http://localhost:8080/webpack-dev-server

その後、私は私が/dist/bundle.js

<script src="/dist/bundle.js"></script>私のindex.htmlの中には、今ではいずれかをリフレッシュすることを使用した後、私のbundle.jsパス> http://localhost:8080/dist/bundle.js

を見ることができましたファイルが変更されます。

+1

これは助けてくれてありがとう! –

+1

ありがとう、これは多くの助けになりました。 – webtopf

+1

私はこの答えのためにkarthik-ranaの答えを知ることができました。ありがとう@ andre-evangelista。答えは+1! – Sung

関連する問題