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议保持不变。