問題タブ [sbt-web]
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.
scala - SBT Web からの静的アセットの生成
SBT-Web と Play Framework に基づくプロジェクトがあります。Play は開発のためだけに使用され、( stage
SBT/Activator でコマンドを実行すると) すべてが静的ページにエクスポートされ、Java がインストールされていない Web サーバーにデプロイされます。
私の現在のアプローチは、resourceGenerator を追加することです。
これは今のところ機能しますが、いくつかの欠点があります。
- 何よりもまず、サブディレクトリを使用できません。ファイルをサブディレクトリに配置しようとすると、ルートに配置されます。
- テンプレートまたはソース データを変更すると、有効にするためにプロジェクトをリロードする必要があります。
- 最後に、Twirl などを使用していただければ幸いです。
それらの欠点を克服する方法は?(最初のものが最も重要です。他の欠点を解決することは、むしろ小さな利点です。)
- 生成コードをパイプライン ステージに配置しようとしました。これは、最終成果物を構築するときに機能しますが、開発中は機能しません。
- アイデア: Twirl テンプレートを使用し、開発中に動的に呼び出し、パイプライン ステージで何らかの方法で (ClassLoader と Reflection API を使用して) 呼び出します。これが正しい方法かどうかはわかりません。sbt-web パイプライン ステージを実行するときに、Scala/Twirl コードが既にコンパイルされていることは保証されていますか?
- ハックなアイデア: ファイルをプロジェクト ルートに生成し、開発モードでルートを介して動的に提供し、パイプライン ステージで名前を変更します。これは重いハックですが、理論的にはうまくいくはずです。
scala - アプリ名に scala バージョンを含めない Sbt リゾルバー
現在、sbt リゾルバーを使用してプロジェクトを見つける際に問題があります。
私は現在、自分のプロジェクトをに公開しています
publishSettings で crossPaths := false を設定しました
ただし、これは私のリゾルバーです
しかし、ここで公開されたプロジェクトを探しようとします
リゾルバーがある種の crossPath = false を持つようにする方法はありますか? または、アプリ名の末尾にある scala バージョン「_2.11」を取り除く方法はありますか?
playframework - `stage` と `run` の実行時に異なる sbt-web SettingKey 値を使用する
SBT プラグインを作成しています。プラグインには、次のものがあります。
val prod = SettingKey[Boolean]("prod", "This will minify stuffs.")
このプラグインを使用するプロジェクトで、実行時にbuild.sbt
異なる値を設定したい.sbt stage
sbt run
さまざまな組み合わせを試しましたが、うまくいきません (例: prod in Assets in stage := true
)。
誰かがこの問題を解決する方法を知っているのだろうか。スコーピングで簡単に解決できるはずの通常の問題のように思えますが、SBT のスコーピングはよくわかりません。
さまざまなコマンドを実行するときに SettingKey をオーバーライドする方法の小さな例があれば、それは素晴らしいことです。ありがとうございました。