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' });