修复链轮弃用:不推荐使用方法`register_engine`

Nic*_*rer 5 ruby ruby-on-rails jquery-templates sprockets

版本

  • 红宝石 2.4.3
  • 导轨 5.1.3
  • 链轮 3.7.3
  • jquery-tmpl-rails 1.1.0

问题:

最新版本jquery-tmpl-rails会触发 sprockets 弃用警告:

DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.

https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors 
(called from block (2 levels) in <class:Railtie> at /my/path/to/gems/jquery-tmpl-rails-ef6f58001d41/lib/jquery-tmpl-rails/engine.rb:10)
Run Code Online (Sandbox Code Playgroud)

尝试解决:

在弃用警告之后,gem 中的问题就在这里:https : //github.com/jimmycuadra/jquery-tmpl-rails/blob/master/lib/jquery-tmpl-rails/engine.rb#L10

目前是:

app.assets.register_engine(".tmpl", JqueryTemplate)

然后,我访问了 sprockets 指南,用于处理 sprockets 2,3,4 的弃用、可扩展性和合规性。https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors

我尽最大努力通过在此叉上提交来纠正问题:https : //github.com/oceanshq/jquery-tmpl-rails/commit/de7a59894f512efb3c1eba432da3517f21d921a2

这是:

asset.register_mime_type 'application/javascript', extensions: ['.tmpl'], charset: :unicode
asset.register_preprocessor 'application/javascript', JqueryTemplate
Run Code Online (Sandbox Code Playgroud)

然而,当尝试运行 Web 应用程序或在 CI 上测试它时,这种尝试只是简单地处理故障。所以显然我错过了一些东西。

问题

  • 我在这里缺少一个简单的语法方法吗?
  • 我在文档中不清楚,虽然register_engine在 Sprockets 3 中已弃用,但实际上是否可以register_engine在留在 Sprockets 3 中进行迁移?
  • 如果我们在可预见的未来继续使用 Sprockets 3,将其保持沉默是否符合犹太教规?通常,我将弃用视为“需要修复的错误”