webpack-dev-server不会自动重新加载和构build – configuration问题

我正在使用我的项目:

"webpack": "2.2.1", "webpack-dev-server": "2.4.2" 

我需要在使用webpack-dev-server实时重新加载文件时创build一个应用程序。

在我的package.json中,我有这样的设置:

 "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "webpack-dev-server --hot --inline" }, 

目前,我可以通过运行: webpack手动构build应用程序,并且可以使用npm start来初始化开发人员服务器。

我遇到的问题是,在npm start和本地服务器运行后,如果我在JS文件中做了一些更改,应用程序不会被重build,页面不会自动刷新。 目前我需要在控制台中webpack手动重新运行webpack

我在控制台收到没有错误,所以我想是一个错误的configuration问题。

你能指出我的设置有什么问题吗?


 // file: webpack.config.js const path = require('path'); module.exports = { entry: './src/index.js', output: { path: path.resolve(__dirname, 'build'), filename: 'app.bundle.js', }, devServer: { inline: true, port: 8080 }, module: { loaders: [ { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' } ] } }; 

webpack-dev-server从内存中提供文件。

自述文件 :

它使用webpack-dev-middleware,提供对webpack资产的快速内存访问。

所以它不会将任何文件写入磁盘,也不会在文件系统中出现文件。 当您删除build目录并启动dev服务器而不运行webpack之前,它应该仍然工作。 如果没有,则不会select从开发服务器提供的path,而是使用文件系统中的文件。

你使用的index.html可能在build目录之外,因此你可以像这样包含这个包:

 <script src="build/app.bundle.js"></script> 

您正在服务器上请求/build/app.bundle.js ,但是webpack-dev-server只会提供/app.bundle.js (因为这是您configuration的文件名)。 要解决这个问题,你可以configurationoutput.publicPath

 output: { path: path.resolve(__dirname, 'build'), filename: 'app.bundle.js', publicPath: '/build/' }, 

这将影响包括资产的装载机。 如果你不想要,你可以设置devServer.publicPath ,但build议保持不变。