【发布时间】:2016-11-19 00:52:15
【问题描述】:
编辑:托管此示例的 github 存储库的链接是 here,以防有人想要运行它
我遇到了与另一个用户几乎完全相同的问题(您可以找到问题here),因为运行 webpack-dev-server 确实可以正确编译和监视文件(在终端中查看控制台输出),但浏览器仍然无法正确查看我的网站。这是我的 webpack.config.js 文件:
var webpack = require('webpack'),
path = require('path'),
// webpack plugins
CopyWebpackPlugin = require('copy-webpack-plugin');
var config = {
context: path.join(__dirname,'app'),
entry: './index.js',
output: {
path: path.join(__dirname, 'public'),
filename: 'bundle.js',
publicPath: path.join(__dirname, 'public')
},
devServer: {
// contentBase: './public/'
},
plugins: [
// copies html to public directory
new CopyWebpackPlugin([
{ from: path.join(__dirname, 'app', 'index.html'),
to: path.join(__dirname, 'public')}
]),
// required bugfix for current webpack version
new webpack.OldWatchingPlugin()
],
module: {
loaders: [
// uses babel-loader which allows usage of ECMAScript 6 (requires installing babel-preset-es2015)
{test: /\.js$/, loader: 'babel', exclude: /node_modules/, query: { presets: ['es2015']}},
// uses the css-loader (loads css content) and style-loader (inserts css from css-loader into html)
{test: /\.css$/, loader: 'style!css', exclude: /node_modules/}
]
}
};
module.exports = config;
这是我的目录结构:
+--- webpack/
+--- app/
+--- index.html
+--- index.js
+--- styles.css
+--- package.json
+--- webpack.config.js
目前,运行 webpack-dev-server 在浏览器中输出以下内容(注意缺少 public/ 目录,这是 webpack 通常输出我的 html 和 javascript 包的地方):
编辑:添加 devServer.contentBase 属性并将其设置为 public 会使浏览器返回未找到的 403 错误,如下所示:
【问题讨论】:
-
你是如何从终端运行开发服务器的?
-
webpack-dev-server --colors --progress -
注意到您的
contentBase已被注释掉。 webpack.github.io/docs/webpack-dev-server.html。如果未指定contentBase,则内容库默认为运行命令的目录 -
publicPath不应是文件系统路径。 -
@sgarcia 我的错误。我现在正在将您的配置与我的配置进行比较。
标签: javascript node.js webpack webpack-dev-server