顶部 require('webpack')
了
在编写react-hot-loader的demo种编辑器中提示
然后浏览器中提示
请问有人遇到过这种问题吗?这个HotModuleReplacementPlugin
在webpack中没有暴露?
这是server.js
var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');
new WebpackDevServer(webpack(config), {
publicPath : config.output.publicPath,
hot : true,
noInfo : true,
historyApiFallback: true
}).listen(8080, '127.0.0.1', function (err, res) {
if (err) console.log(err);
console.log('At 3000');
});
这是webpack.config.js
var webpack = require('webpack');
var path = require('path');
var OpenBrowserPlugin = require('open-browser-webpack-plugin');
var ASS = path.resolve(__dirname, 'assets');
var BUILD = path.resolve(__dirname, 'build');
module.exports = {
entry: {
app: ['webpack-dev-server/client?http://127.0.0.1:8080', 'webpack/hot/dev-server', './assets/main.js']
},
output: {
path: BUILD,
filename: '[name].js',
publicPath: BUILD
},
module: {
loaders: [
{
test: /\.js[x]?$/,
exclude: /node_modules/,
loaders: ['react-hot', 'babel-loader?presets=react&presets=es2015']
}
]
},
plugins: [
new OpenBrowserPlugin({ url: 'http://localhost:8080' })
]
};
警告用此不够准确,这里的意思是:“HotModuleReplacementPlugin不会生效”。
为什么不会生效呢?
那是因为你已经:
解决方案很简单,去掉
webpack.config.js
里的插件引用就好了补充:
其实
entry
不需要搞那么麻烦:只要在把
inline
也启动起来就好了: