問題タブ [esbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rail 7、cssbundling-rails、jsbundling-rails のテスト モード (RSpec) でアセットが存在することを確認するにはどうすればよいですか?
私は、大規模な商用 (独自) Rails 6 アプリケーションを Rails 7 にアップグレードしています。Webpacker を使用したことはなく、代わりに、Bootstrap などのバンドルされた gem から「Rails 7 の方法」に直接移行しています。
Rails 7 の「ノードなし」ワークフローは、CSS コンポーネントと JS コンポーネントの両方で構成されるコンポーネントに対して適切な答えを持たないことが判明しました。私たちの場合、最も明白な犯罪者は Bootstrap です。インポート マップを使用して Bootstrap の JS の「半分」を維持し、古い Bootstrap gem や手動のベンダリングのようなものを使用して CSS を「半分」維持することに直面しました (そして、ここで Node を使用しない他のソリューションは実際にはありません)。ノードのワークフロー。
これは一緒に来ています。CSS および/または JS を提供するすべてのフロントエンド コンポーネントは、すでに NPM で問題なく使用できるようになっています。そのため、現在ではすべてpackage.json
Yarnを介して管理され、 bin/dev
Sass を駆動esbuild
し、SCSS および JS コンポーネントをapp/assets
、app/javascript
またはからプルしてコンパイルしnode_modules/...
ます。結果として、アセット パイプラインには、内部のおよびフォルダーmanifest.js
への参照のみが含まれます。build
images
app/assets
リクエストごとに Sprockets で物事を同期的に処理するのに対して、Foreman の下で現在実行されている複数のプロセスの複雑さと一緒に、ファイル名のリストのすべての重量級の手動メンテナンス (ワイルドカードのインポートはサポートされなくなりました) は、少し後退したように感じます。しかし、それらすべてが非推奨/放棄されているため、明らかに更新する時が来ました.
これは開発モードと本番モードではすべて正常に機能しますが、テストはどうでしょうか? RSpec を使用します。 CI では、構築されたアセットはなく、開発者は、実行しようとするたびに実行esbuild
することを覚えておく必要はありません。他のことは別として、それはかなり遅いです。assets:precompile
rspec
最新のアセットでテストを実行したい場合に、具体的cssbundling-rails
に andを使用して Yarn/Node ベースのワークフローで公式の慣用的な Rails 7 ソリューションは何ですか?jsbundling-rails