Webpack-dev-serverは、アプリページの代わりにディレクトリリストを提供します


91

ここに画像の説明を入力してください

で実際のアプリしか見ることができません/public

の構成webpack.config.jsは次のとおりです。

var path    = require('path');
var webpack = require('webpack');

module.exports = {

  entry: [
    'webpack-dev-server/client?http://localhost:8080',
    'webpack/hot/only-dev-server',
    './app/js/App.js'
],

  output: {
    path: path.join(__dirname, 'public'),
    filename: 'bundle.js',
    publicPath: 'http://localhost:8080'
  },

  module: {
    loaders: [
      {
        test: /\.js$/,
        loaders: ['react-hot', 'babel-loader'],
        exclude: /node_modules/
      }
     ]
   },

  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ]

};

プロジェクト階層は次のとおりです。

  • アプリ

    • js
  • node_modules

  • 公衆

    • css

    • img

    bundle.js

    index.html

  • package.json

  • webpack.config.js

http://localhost:8080/エントリがアプリケーション自体のものであることを確認するためにどのように変更できますか?

回答:


78

webpackの開発サーバーを使用し/publicている場合は、ベースディレクトリとして使用するオプションを渡すことができます。

devServer: {
    publicPath: "/",
    contentBase: "./public",
    hot: true
},

その他のオプションと一般的な情報については、webpack構成のドキュメント、特にwebpack開発サーバーのドキュメントを参照してください。


1
この答えをありがとう、それは私を動けなくさせました。また、両方のドキュメントへのリンクを投稿していただきありがとうございます。
クリスシュミッツ

3
webpack 2はどうですか?ドキュメントを読んだのですが、自分で理解できませんでした。
マイティアム2017年

@mightyiampublicPathプロパティも設定する必要があります。それを含めるために答えるために更新します。
サンダル2017年

1
誰もがドキュメントからこれを理解する方法がわかりません。ありがとうございました。おそらく、それらのプロパティに関するドキュメントの一部を書き直すことを検討しますか?
マイティアム2017年

17

--content-base起動スクリプトにフラグを追加することもできます。

    "scripts": {
        "start:dev": "webpack-dev-server --inline --content-base ./public"
    }

4

私の場合、を'index.html'設定するときにスペルを間違えましたHTMLWebpackPlugin。このプラグインを使用している場合は、ファイル名を再確認してください。

var HTMLWebpackPlugin = require('html-webpack-plugin');
var HTMLWebpackPluginConfig = new HTMLWebpackPlugin({
  template: __dirname + '/app/index.html',
  filename: 'index.html',
  inject: 'body'
});

これは、webpackによって自動生成されたHTMLを取得していたという事実を修正するのに役立ちました。これで、このtemplateパラメーターを設定することで、問題なく独自のhtmlを指定できます。どうもありがとう!
danivicario

1

誤ってindex.htmlを削除してしまい、ディレクトリリストしか取得できませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.