我正在编写一个 gem,它必须//= require "XYZ"
根据应用程序启动时的配置选择 XYZ.js 文件的哪个版本可用于 sprockets 语句。我的解决方案是将XYZ.variant.js
or复制XYZ.variant2.js
到/tmp/cache/<gemname>/XYZ.js
Rails 应用程序中。如果我手动测试,这似乎可行;如果我去test/dummy
文件夹并通过正确找到rackup
的功能测试功能。XYZ.js
如果我通过另一个 Rails 应用程序测试 gem,它可以工作(通过path:
Gemfile)。
/tmp/cache/<gemname>/XYZ.js
但是,当我为这个 gem 运行测试套件时,它失败了,因为在初始复制到/tmp/cache/assets
. 我不明白这在测试套件和其他 2 种工作方法中如何表现不同。就好像初始化顺序不同之类的。有什么特别的东西可以通过运行来rackup
改变初始化顺序吗?
请注意,测试套件在此之前运行良好,特别是添加到执行 tmp 复制的代码中。这只是enginex
本来会生成的普通代码。