使用 Webpack Dev Server 时可以强制重新编译吗?

Can I force a recompile when using Webpack Dev Server?

我在一个相当大的工作项目中使用 webpack-dev-server。有时,当我保存文件时,它不会像预期的那样重新编译,我不得不重复 :w(Vim 中的保存命令)直到它响应几次。开发服务器 "notice" 我正在保存文件并触发重新编译需要多长时间似乎很随意,有时我只是重新启动整个开发服务器。

有没有办法像保存文件一样手动强制重新编译应该?我可以发送我想以某种方式重新编译的文件的路径吗?

这不是普通的 webpack 体验,因此没有对触发重新构建的外部工具的内置支持(系统事件应该已经促进了这一点)。

webpack 使用 chokidar 来监控文件系统的变化。尝试 运行 CHOKIDAR_USEPOLLING=250 webpack-dev-server $ARGS 看看是否能改善您的体验。

如果它不起作用,恐怕您将不得不通过节点 API 求助于 运行 服务器,然后公开一些您可以 ping 更改的端点。

你的问题有两个问题。一个用于 webpack,一个用于 Vim.

重新触发 webpack 的最简单方法是 "fool it" 认为监视的文件已更改。向 touch 命令问好。例如,如果你监视的文件之一是 README.md,你可以在你最喜欢的终端中输入 touch README.md,webpack 将发挥它的魔力(此命令将目标文件的时间戳更新为 'now') .

在使用 Vim 的情况下,发生了其他事情。当您 :w 时,根据 Vim 配置的文件保存行为, Vim 可能会决定重命名旧文件并创建一个新文件,将缓冲区保存到新创建的文件.这使得 webpack 观察者更难注意到变化。但是,这可以在 Vim 中更改。只需在 .vimrc 中添加一行即可,请参阅:https://github.com/webpack/webpack/issues/781#issuecomment-95523711

总而言之,手动重新触发 webpack 构建:

触摸项目中的文件 -> touch file/in/project.fun
(或)
更改您的 .vimrc -> :set backupcopy=yes