ruby-on-rails - 如何缓存 Rails webpack 包

标签 ruby-on-rails caching webpack webpacker

我有一个带有大量 vendor CSS 和 JS 的 Rails 6 应用程序。 CSS 和 JS 很少会改变。我希望 Rails 缓存它。
我创建了 2 个包。 1 包含来自 vendor 的所有导入,另一个包含我的应用程序 JS 的导入。我用 javascript_packs_with_chunks_tag在两者的头部。
每当我修改应用程序的 JS 文件时,该包的缓存也会与 vendor 的包一起失效!
这种行为似乎很正常,因为我能够使用新的 Rails 应用程序重现它。
编辑:我可以通过关闭编译 (webpacker.yml compile: false ) 并在单独的终端选项卡 ( ./bin/webpack --watch --colors --progress ) 中运行 webpack 来解决新 Rails 应用程序中的问题,但在我的应用程序中我仍然遇到问题。似乎 Webpack 找到了一些全局变量或关键字来连接这两个包。不幸的是,Webpack 日志和依赖关系图并未显示该“连接”。 100% 不是 import .

最佳答案

我发现的一个简单解决方案是将 vendor CSS 和 JS 移动到 sprockets 而不是 webpack。我不喜欢这个解决方案,但它有效。
为此,请使用 sprocket 类型的 include 语句

<%= javascript_include_tag 'vendor' %>
<%= stylesheet_link_tag 'vendor' %>
并将您的 vendor js 和 CSS 放在各自的 app/assets 中文件夹

关于ruby-on-rails - 如何缓存 Rails webpack 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62492970/

相关文章:

ruby-on-rails - Rails 嵌套资源

ruby-on-rails - Rails 中的 API secret 生成

java插件缓存和动态IP主机

Java 不会显示被覆盖的图像

java - 如何修复memcached中的 "stale data access"

npm - webpack 一个包含 node_modules 的模块

css - Webpack 没有将 scss 编译成 css

java - Android 上的 HTTP Post Multipart 不发布图像。

ruby-on-rails - 如何从谷歌分析导入报告?

javascript - 从 Vue 的生产构建中删除选定的路由