【问题标题】:getting around the Gem::Package::TooLongFileName issue解决 Gem::Package::TooLongFileName 问题
【发布时间】:2016-05-24 19:15:52
【问题描述】:

我正在尝试将 Rails 应用程序打包为 gem。我想放入 gem 的部分内容是预编译的资产(因此用户不必为此烦恼)。但是,gem build <my_gemspec> 阻塞了public/assets 中消化的预编译文件的超长文件名。有其他人经历过吗?

谢谢!

另一个注意事项:这不是一个可以被其他应用程序使用的 gem。相反,它是一个独立的 Rails 应用程序的包装。 gem 让人们更容易使用它,只需调用它的可执行文件来运行。

【问题讨论】:

  • gem 中的预编译资产在现实中并没有那么有用 - 在大多数情况下,您希望将 gem 资产包含在自己的应用程序清单中,以便资产管道将其缩减为单个文件以提高性能.它只会增加使用您的 gem 的应用程序的 slug 大小,这不是一个理想的特性。
  • 确实,根据官方 Rails 文档 (guides.rubyonrails.org/…),建议在初始化程序中定义用于预编译的资产。
  • 我最近在 gem 提交了一个问题请求来改变这个愚蠢的限制。想出这个的人真的很疯狂——显然 155 是一个神奇的数字。或超过 100 个字符。但是在我的 linux 系统上,这么长的文件名可以正常工作;红宝石本身也可以正常工作。只是 gem 设置了这个完全任意的限制 - 现在是时候改变它了,这样这个问题就完全消除了。

标签: ruby-on-rails ruby rubygems


【解决方案1】:

我通过以下方式解决了这个问题:

config.assets.configure do |env|
  env.digest_class = Digest::MD5
end

在保持摘要的同时充分缩短了资产名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多