問題タブ [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.
sbt - sbt-native-packager のクラスパスに sbt-web resources jar を追加
マルチプロジェクト ビルドがあり、sbt-web によって生成されたアセットを含む jar を起動スクリプトのクラスパスに追加しようとしています
私が興味を持っているプロジェクトは と呼ばれてwebsite
います。
show website/web-assets:packageBin
sbt と入力すると、アセットを含む jar が作成されて表示されます。を入れてみまし(managedClasspath in website) += website/web-assets:packageBin
たが、コンパイルされません:
path/to/build.sbt:58: エラー: 値 / は sbt.Project のメンバーではありません
Web サイトの managedClasspath += website/web-assets:packageBin
ステージ タスクを実行するときにアセットを含む jar を作成し、それを起動スクリプトのクラスパスに配置するにはどうすればよいですか
scala - sbt の依存関係からリソース ファイルを取得する
いくつかの webjar と一般的な jar 依存関係を持つsbt-webプロジェクトがあります。jar 依存関係の 1 つからリソース ファイルを取得し、それを連結タスクで使用したいと考えています。しかし、build.sbt の依存 jar 内のリソースを参照する方法がわかりません。
sbt - Fluidity を備えた sbt-stylus
Stylus cli を使用すると、@import fluidity を .styl ファイルに追加し、Fluidity ディストリビューションへのパスを定義できます。
しかし、Fluidity をサポートするために sbt-stylus で同様のことを行う方法がわかりません。コードを見ると、 --compress が現在サポートされている唯一の cli オプションのようです。sbt-stylus を fork して「uses」のサポートを追加することはできますが、最初に、何かが足りないだけなのか、それとも作業がすでにどこかで行われているのかを確認したいと考えています。
javascript - sbt 内で npm build for play フレームワークを実行する
私は sbt/play の設定にあまり詳しくありません。Play 2.3.8 を使用して JavaScript アプリケーションを提供しています。プロジェクトには次のものがあります。
プロジェクトはクロージャコンパイラを使用してコードなどを縮小していますが、変更したいと思います。クロージャ コンパイラの使用をやめ、代わりに単純な npm パッケージを使用したいと考えています。sbt がいくつかのシェル タスクを実行できることは承知しています。すべての理由は、サーバーをフロントエンドから分離するためです。したがって、フロントエンドに関連するすべてのタスク (less、uglify、フィンガープリンティングなど) は、実際にはノードのような JavaScript ツールによって実行されます。sbt-web について読んでいましたが、できれば避けたいと思います。1. sbt を起動し、プロジェクトを開きます 2. コンパイルを実行します: - sbt は npm タスクを実行し、build.js ファイルを作成します。このファイルは、/public ディレクトリなどから play フレームワークを介して提供できます。3. 可能であれば、単体テスト用に別のプロセスを用意する可能性が欲しいです。
npm のセットアップに関しては、package.json を自分のproject/public
フォルダーに入れることを考えていましたproject/app/assets
。
それはすべて可能ですか?
2015 年 8 月 8 日更新
私はいくつかの調査を行い、外部プロセスについて知りました。私が作成したいくつかの例に基づいて:
しかし、このタスクをコンパイル プロセスに追加する方法がわかりません。
scala - sbt-web アセット出力ディレクトリのセットアップ
シナリオ
Scala.js と LESS を使用したかなり単純な Scalatra プロジェクトがあり、そのために sbt ビルド構成を作成する必要があります。プロジェクトは、jvm、js、共有コードの 3 つの部分に分かれています。
私の現在のビルド構成では、WAR パッケージに xsbt-web-plugin を使用していますが、LESS ソースの処理を処理できるように sbt-web をセットアップしたいと考えています。
問題
現在の構成では、package コマンドを実行すると、sbt-web はアセットをWEB-INF/classes/main/META-INF/resources/webjars/dataretrieverjvm/0.1.0-SNAPSHOT に配置します。代わりにWEB_INF/publicに配置したいのですが、それを達成する方法がわかりません。
これは、現時点で私の Build.scala がどのように見えるかです:
部分解
この方法でアセットはWEB-INF/publicにコピーされますが、残念なことに sbt-web はそれらをWEB-INF/classesにコピーします。
scala - sbt-closure で web-jar を処理から除外するには?
sbt-closure で sbt-web パイプラインを使用していますが、デフォルトでは web-jar を含むすべてのアセットを処理し、Reactjs ファイルで問題が発生します。
sbt-closure で web-jar を処理から除外し、自分の JavaScript ファイルのみを処理するにはどうすればよいですか?
sbt - Play を使用しない最小限の sbt-web パイプライン
スプレーを使用して単一ページのアプリを作成していますが、sbt-web で入力を処理できません。https://github.com/sbt/sbt-web/blob/master/README.mdは次のように述べているため、WebJars から始めました。
public および public-test フォルダーに関して最後に 1 つ...プロジェクトが依存する WebJar は、これらのフォルダー(たとえば、target/web/public/lib/jquery/jquery.js) に自動的に抽出されます。
ただし、ターゲットフォルダーにそのような「web」フォルダーはありません。WebJars は例としては複雑すぎて最初から始められないのではないかと思ったので、代わりに jquery.js ファイルをアセット フォルダーのルートに追加し、sbt-uglify をセットアップして処理を行いました。それでも、SbtWeb が機能しているという証拠はまだありません。sbt --debug clean run
SbtWeb または Uglify からの出力を実行して grep しましたが、エラーや警告はなく、SbtWeb または Uglify に関するものは何も見つかりません。プラグインを「推測」しているように見えることを認めてください:
これが私のディレクトリ構造です:
ここに私のプロジェクト/plugins.sbtがあります:
これが私の ./build.sbt です:
./target フォルダーのルートは次のようになります。
./target/web
フォルダがありません。理由はありますか?
参考文献: