//= require "XYZ"
アプリの起動時の構成に基づいて、スプロケットステートメントで使用できる XYZ.js ファイルのバージョンを選択する必要がある宝石を作成しています。私の解決策は、Rails アプリでXYZ.variant.js
orXYZ.variant2.js
をコピーすることです。/tmp/cache/<gemname>/XYZ.js
手動でテストすると、これは機能するようです。フォルダに移動してtest/dummy
機能をテストすると、rackup
適切XYZ.js
に検出されます。別の Rails アプリを介して gem をテストすると、( path:
Gemfile を介して) 動作します。
しかし、この gem のテスト スイートを実行すると失敗します。これは、 への最初のコピー後のある時点で、/tmp/cache/<gemname>/XYZ.js
tmp フォルダー全体がクリアされ、テストが実際に実行されるまでにその中にあるのは/tmp/cache/assets
. これがどのようにテスト スイートと他の 2 つの作業方法で異なる動作をするのか理解できません。初期化の順序が違うかのようです。viarackup
を実行すると、初期化順序が変更される特別なことがありますか?
このテスト スイートは、特に tmp コピーを実行するコードに追加される前は正常に機能していたことに注意してください。生成されるのは通常のenginex
コードです。