問題タブ [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 に認識させる方法
私は sbt-web を使用しており、本番用の js ファイルのみを醜くしたいと考えています (開発中のコンパイル時間を節約します)。ただし、実行すると:
私は同じ結果を得る
つまり、以下のスコープ設定prod:run
をピックアップしていないようです。pipelineStages in prod
私はこれがどのように機能するかを誤解していると確信しており、いくつかの明確さと正しい使用法を望んでいます. http://www.scala-sbt.org/0.13/tutorial/Scopes.htmlと SO に関するすべての同様の投稿を読みましたが、電球はまだ点灯していません。もっと良い方法があればいいのですが、学習モードにあるので、これがうまくいかない理由を知りたいです。
完全な ./build.sbt ファイルは次のとおりです。
scala - テストを実行する前に、sbt-web アセット パイプライン、具体的には sbt-concat を実行するにはどうすればよいですか?
テストを実行する前に、JavaScript ファイルが必要です。sbt-concat を使用して作成されます。仕様テストを実行するための依存関係として sbt-web アセット パイプラインを追加するにはどうすればよいですか?
uglifyjs - SbtWeb: traceur の出力を醜くする
Play フレームワーク (sbt/scala) プロジェクトでコードをトランスパイルするために SbtWeb traceur プラグインを使用しています。これにより、 で ES5 リソースが得られます/main.js
。次に、結果を醜くしたいと思い/main.min.js
ます。uglify プラグインも追加してから、次のことを試みました。
pipelineStages := Seq(traceur, uglify)
残念ながら、これはtraceur
TaskKey と同様にコンパイルされませんが、正しい型ではありません。これどうやってするの?
編集:これを行うための正しい方法は次のようになります。
ただし、Javascript に構文エラーがあるという醜いエラーが表示されるようになりました。これは、uglify が traceur の ES5 出力ではなく、元の ES6 ソースを処理しようとしているためです。これを機能させる方法はまだわかりません。
scala - 単一のプロジェクト内で sbt-web で scala-js アーティファクトを使用する方法は?
sbt-web と scala-js を使用して webjar を作成したいと考えています。これまでartifactPath
のところ、scala-js アーティファクトの をmappings in Assets
. これは、呼び出しfastOptJS
てファイルが正しい webjar の場所に表示される場合に機能します。
ただし、 でアセットを生成したいと考えていますcompile
。問題は、ここにタスクの依存関係を追加するたびに循環依存関係が発生することfastOptJS
です。またはに追加fastOptJS
することはできません。また、循環依存関係のために依存関係を追加することもできません。resourceGenerators
sourceGenerators
compile
fastOptJS
別のプロジェクトからトリガーするオプションではありません。
これに対する解決策はありますか?
node.js - ScalaJs sbt ビルドでは、「Provided」で npm または bower の代わりに webjars を使用する利点はありますか?
数か月前に初めて webJars を発見したとき、これらのビルド/ビルドシステムの一部が非常に複雑であり、js
ファイルが公開される頻度を考えると、それがクライアント側の依存関係を処理する実行可能な方法であることに非常に懐疑的でした。2 番目の懸念はもちろん十分に根拠のあるものではありませんでしたが、約 10 個scss/css/less
の 型の webJars と 8 個の JS webJars を 1 つのjsDependencies
屋根の下に配置しようとして 36 時間近く費やした結果、最初の懸念が正しかったと感じています。
私が見つけたのは、JS 依存関係 3、4、または 5 に到達するまでに、ばかげたタイムキル ループに陥り始めることです。
1.「ああ、webjar の依存関係と同じ名前のランダムなファイルがあったため、fastOptJS が失敗しました!」
2. やるべきことはわかった!定義済みの js にバージョンを追加します。
3. 「いやだ! fastOptJS が失敗した!」
ggの男の子。
これは何度も何度も何度も繰り返され、それから私はやり始めなければなりません
そして今、私は実際にはwebjarを使用していませんが、Xという名前のjs依存関係があり、それを変更することはできません...
質問
うーん?以前と同じように、アプリなしで依存関係を巨大なファイルまたはファイルのセットにビルドし、それをビルドにフィードした場合はどうなりますか? 私はオンラインからの概念実証を持っていて、それを機能させました( https://github.com/wav/material-ui-scalajs-react/blob/master/src/main/scala/wav/web/だったと思いますmuiwrapper/package.scala ) はほとんど機能し、私にアイデアを与えてくれました。
npm
よりもはるかにうまく機能することはわかってsbt,
いますが、それでもパッケージに入れることができます...マイナス面は何ですか? sbt について何か不足していますか?
playframework - Angular2 TestAssets を Play Framework の Assets と同じディレクトリに置くにはどうすればよいですか?
Angular2 は、プロジェクト ソースへのよりモジュール化されたアプローチに移行しました。これは、サブモジュールのソース、html テンプレート、およびテストのすべてが 1 つのディレクトリにまとめられていることを意味します。アプリ、パブリック、およびテスト ディレクトリに分散する代わりに。
これは非常に理にかなったアプローチです。
そのために Play/sbt-web を設定しようとしています。私のプロジェクトには次の設定があります。
アセットのコンパイル手順は正しく機能します。しかしその後、重複したマッピング エラーが発生します (以下を参照)。コンパイルされたアセットは、excludefilterを適用せずに TestAssets コンパイルに webjar 依存関係として追加されているようです。これにより、重複したマッピングが説明されます。
これを私のプロジェクトで機能させる方法はありますか? それとも、これは sbt-web の欠点ですか? (必要に応じて修正のためのプルリクエストに取り組んでいきます)
私の Activator の例の play-angular2-typescript プロジェクトはこちらにあります。
これは重複マッピング エラーです。
playframework - Play 2.4.x - アセットの複製
私が取り組んでいる Play 2.4.6 アプリでは、stage/dist タスクでアセットが複製されています。
基本的に、これは 3 つのサブモジュールを備えたアプリであり、すべてのアセットがメインpublic
フォルダーに存在します。私はsbt-web
有効にしておらず、webjars の依存関係もありません (しかし、jar の内容から、Play はそれらをどこかで使用している可能性があります)。
使用すると、フォルダーPlayKeys.externalizeResources := false
に2つのjarファイルが作成されます。lib
- myapp-server.myapp-server-0.9.6-assets.jar
- myapp-server.myapp-server-0.9.6.jar
最初のものには、アセットが含まれている必要があります。2 番目にはメイン プロジェクトのクラス ファイルが含まれている必要がありMETA-INF/resources/webjars/myapp-server/0.9.6
ますが、パブリック フォルダーのすべてのアセットを含むフォルダーもあります。
使用するPlayKeys.externalizeResources := true
とまったく同じ動作になりますが、代わりに余分なMETA-INF/resources
フォルダーが存在しmyapp-server.myapp-server-0.9.6-externalized-resources.jar
ます。
では、その余分なアセット フォルダーを削除するにはどうすればよいでしょうか? 私はたくさんのアセットを持っているので、余分なフォルダーがパッケージサイズに大きく追加されます...
playframework - sbt-uglify オプションでディレクトリを指定する方法
私は遊びのフレームワークに基づくプロジェクトを持っています。sbt-uglify プラグインを使用して、js ファイルを縮小および連結しています
私のbuild.sbtで私は定義しました
上記のコードには、すべての js ファイルが含まれています。しかし、私は次のようなことをしたい
sbt-concat を使用せずにこれを行うにはどうすればよいですか?