【发布时间】:2017-06-13 14:47:05
【问题描述】:
我目前正在使用以下配置文件从webpack-dev-server 运行我的React 应用程序:
// webpack.config.js
/* eslint no-var: 0 */
var path = require('path')
var webpack = require('webpack')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
module.exports = {
entry: {
'controller-bundle': path.resolve(__dirname, './src/js/sym-controller.js'),
'app-bundle': path.resolve(__dirname, './src/js/sym-app.js'),
bundle: path.resolve(__dirname, './src/js/index.js')
},
output: {
path: path.resolve(__dirname, './dist'),
filename: '[name].js'
},
resolve: {
extensions: ['.js', '.jsx']
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new ExtractTextPlugin('style.css'),
new HtmlWebpackPlugin({
template: './src/html/controller.html',
filename: 'controller.html',
chunks: ['controller-page']
}),
new HtmlWebpackPlugin({
template: './src/html/app.html',
filename: 'app.html',
chunks: ['app-page']
})
],
module: {
loaders: [
{
test: /\.js(x)?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader'
},
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: 'css-loader'
})
}
]
},
devServer: {
contentBase: path.resolve(__dirname, './dist'),
host: '0.0.0.0',
port: 4000,
https: true,
headers: {
'Access-Control-Allow-Origin': '*'
}
}
}
我遇到的问题是,当 WDS 的 https 标志设置为 true 时,应用程序不断抛出错误:
[WDS] Disconnected!
并立即刷新页面。 (可能一两秒一次)
当https 设置为false 时不会发生这种情况,但我需要在https 开启的情况下运行应用程序。我在webpack 的 github 问题部分看到了这个问题,但似乎无法找到一个明确、直接的答案来解释为什么会发生这种情况以及如何解决它。
我所看到的最接近解释的是,它是由于 websockets 和开发服务器本身之间的不匹配或不完整的握手造成的。如果我能够使用它来解决问题,我会从节点模块包中提取开发服务器的 server.pem 文件。
更新:
通过使用webpack-dev-middleware 安装到自签名express 服务器上暂时解决,但是我仍然希望完全解决仅使用dev-server 的问题。
【问题讨论】:
标签: https webpack webpack-dev-server webpack-2