Webpacker:启用监视模式还是取消挂接webpacker:从资产编译:在Rails中预编译任务?

时间:2018-11-20 12:37:41

标签: ruby-on-rails webpacker

在后台运行Webpacker编译器的Rails服务器会编译所有文件,而不仅仅是重新加载时修改的文件。

我尝试在webpacker.yml下的dev_server中启用监视模式,但没有帮助。因此,为了解决此问题,我想做以下两件事之一:

  1. 如何在Webpacker中启用监视模式,以便每次修改资产时,都会对唯一接触的资产进行重新编译,从而解决重新加载问题,使开发变得轻而易举。

  2. 由于无法找到第一点的任何解决方案,因此我想将Webpacker:compile任务与Assets:precompile脱钩。尽管我可以通过将WEBPACKER_PRECOMPILE环境变量禁用为false,然后使用./bin/webpack手动编译这些资产来在生产中将其解开。但是,运行时我无法在本地获得结果

export WEBPACKER_PRECOMPILE=false && rails s

要尝试第一点,我在一个选项卡中运行了rails s,在另一个选项卡中运行了./bin/webpack -w。令我惊讶的是,使用后一个命令的监视模式只能编译触摸的文件,从而将编译时间减少到1秒以下。但是,在重新加载页面rails s之后,再次编译了将近一分钟才能完成的所有资产。

1 个答案:

答案 0 :(得分:1)

在查看Webpacker的源代码时,这个想法让我震惊:

  1. 使用./bin/webpack --watch命令以监视模式运行Webpack。这将重新编译修改过的文件,只会加快反馈周期。

  2. 要从Rails服务器中取消Webpack编译,只需在webpacker.yml中的compile: false环境下设置development