Webpack-dev-server提供一个目录列表,而不是应用程序页面

在这里输入图像说明

我只能在/public下看到实际的应用程序。

webpack.config.js中的configuration如下:

 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/ entry是为应用程序本身?

如果您使用的是webpack的开发服务器,您可以传入选项以将/public作为基本目录。

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

请参阅webpackconfiguration文档 ,特别是webpack dev服务器文档以获取更多选项和常规信息。

您也可以将--content-base标志添加到您的启动脚本中,例如

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

在我的情况下,当我设置HTMLWebpackPlugin时,拼错了'index.html' 。 仔细检查你的文件名,如果你使用这个插件。

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