如何使用Webpack-dev-server和HTML-webpack-plugin

时间:2016-06-15 00:58:42

标签: webpack webpack-dev-server webpack-hmr html-webpack-plugin webpack-hot-middleware

我使用webpackhtml-webpack-plugin使用生成的脚本包更新我的index.html文件,例如bundle.[hash].js

然后我必须运行webpack-dev-server所以我可以将该软件包加载到内存中并利用热模块替换。

这使代码编译两次。

但是,我希望webpack-dev-server能够使用新的bundle.[hash].js更新index.html文件,因为现在我必须运行webpack后跟{ {1}}。编译两次似乎很奇怪。

同样,我运行webpack-dev-sever的唯一原因是使用捆绑包的新哈希更新我的index.html文件。如果我可以让webpack将更新的index.html输出到磁盘,那么我可以完全删除webpack-dev-server命令。

这可能吗?如果是这样,webpack配置会改变什么?我的webpack配置很长,所以我认为在这里发布它会有所帮助。

2 个答案:

答案 0 :(得分:2)

我认为这正是您所需要的:https://github.com/jantimon/html-webpack-harddisk-plugin

webpack-dev-server将更新的HTML保存在内存中。使用此插件,它还会将其写入文件系统。

答案 1 :(得分:1)

webpack-dev-server会将编译后的bundle存储在内存中,并且不会将bundle写入ouput目录,所以我认为在使用{{1}时你不需要在bundle name中添加[hash] },

您可以拥有三个webpack配置文件,例如 webpack.common.js webpack.dev.js webpack.prod.js

webpack.common.js 包含可以使用webpack-merge

与其他配置合并的常见配置

webpack.dev.js 用于webpack-dev-server,输出文件名应为webpack-dev-server

webpack.prod.js 用于制作,输出文件名应为bundle.js

然后你可以简单地运行bundle.[hash].js