Sprockets find_asset 不翻译 rake 任务中的文件

Sprockets find_asset doesn't translate files within rake task

我有一个 rails 应用程序使用 react-rails 和 jsx 资产,我想在 rake 任务中看到这些文件的纯 js 翻译。

在 rails 控制台中,我可以使用行 Rails.application.assets.find_asset(jsx_file_path).to_s

实现此目的

然而,当我将此行放入 rake 任务时,它 returns jsx 文件的未翻译内容(控制台和 rake 任务在相同的 rails 环境中执行)。为什么 sprockets 在 rails 控制台和 rake 任务中表现不同,我如何配置它在 rake 任务中表现相同?

已修复:我需要我的 rake 任务依赖于 :environment,以便 rails 应用程序在任务 运行 之前初始化。

改成task :my_task dotask :my_task => :environment do rake 任务中的一切都与在控制台中一样。