在后台运行Webpacker编译器的Rails服务器会编译所有文件,而不仅仅是重新加载时修改的文件。
我尝试在webpacker.yml
下的dev_server
中启用监视模式,但没有帮助。因此,为了解决此问题,我想做以下两件事之一:
如何在Webpacker中启用监视模式,以便每次修改资产时,都会对唯一接触的资产进行重新编译,从而解决重新加载问题,使开发变得轻而易举。
由于无法找到第一点的任何解决方案,因此我想将Webpacker:compile任务与Assets:precompile脱钩。尽管我可以通过将WEBPACKER_PRECOMPILE
环境变量禁用为false
,然后使用./bin/webpack
手动编译这些资产来在生产中将其解开。但是,运行时我无法在本地获得结果
export WEBPACKER_PRECOMPILE=false && rails s
要尝试第一点,我在一个选项卡中运行了rails s
,在另一个选项卡中运行了./bin/webpack -w
。令我惊讶的是,使用后一个命令的监视模式只能编译触摸的文件,从而将编译时间减少到1秒以下。但是,在重新加载页面rails s
之后,再次编译了将近一分钟才能完成的所有资产。
答案 0 :(得分:1)
在查看Webpacker的源代码时,这个想法让我震惊:
使用./bin/webpack --watch
命令以监视模式运行Webpack。这将重新编译修改过的文件,只会加快反馈周期。
要从Rails服务器中取消Webpack编译,只需在webpacker.yml中的compile: false
环境下设置development