問題タブ [dependency-resolution]
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.
node.js - Yarn ワークスペース -- パッケージ エイリアス
TL;DR ローカル ヤーン ワークスペース依存関係のエイリアスを作成するにはどうすればよいですか?
以前に糸のワークスペースを試したことがありますが、成功したことはありません。もう一度試してみます。
入れまし"workspaces": ["packages/*"]
たpackage.json
。
パッケージごとに、命名規則を使用して@-/package-name
命名の競合を防ぎ、内部パッケージの名前空間を気にすることなく使用することにしました。
パッケージを依存関係として追加するとき、解決のためにインターフェイス名を使用するスタイルに従ってきましたが、それを具体的な実装に向けています。これは、yarn ワークスペースを使用する前に行ったことです。
これは基本的に、私がコンパイル時の静的依存性注入と呼んでいるものを許可するためです。また、各パッケージが必要に応じてインターフェイスの依存関係に個別に名前を付け、名前の競合を防ぐこともできます。
ただし、yarn ワークスペースでこれを達成する方法がわかりません。@-/some-concrete-implementation
と呼ばれる糸ワークスペース パッケージのエイリアスを作成するにはどうすればよいmy-interface-name
ですか?
私がすでに試したことは成功していません:
- 依存関係を次のように定義する
"my-interface-name": "@-/some-concrete-implementation"}
- 何らかの理由で、yarn が@-/some-concrete-implementation
ローカル ワークスペースではなく npm レジストリを検索するようになる - ワークスペース プロトコルも使用しようとしまし
"my-interface-name": "workspace:@-/some-concrete-implementation"}
たが、npm レジストリでパッケージを探します。
私がまだ試していないことは機能しますが、そもそも糸ワークスペースを使用する利点がなくなります。
"dependencies": {"my-interface-name": "file:../../node_modules/@-/some-concrete-implementation"}"
java - 依存関係の解決エラーを修正するには?
私は libgdx でゲームを開発しており、外部 jar を使用して JSON を操作しています。libgdx には独自のものがあることは知っていますが、以前にこの jar を使用したことがあり、使用方法を知っています。とにかく、ルートディレクトリのbuild.gradleに追加して同期しました。しかし、プロジェクトをビルドしようとすると、次の大きなエラー メッセージが表示されます。
これが何を意味するのか、またはこの org.hamcrest が重複しているものは何なのか、私にはわかりません。これが私のbuild.gradleファイルです:
私が追加したのは、コア プロジェクトの依存関係に「実装グループ: 'com.googlecode.json-simple'、名前: 'json-simple'、バージョン: '1.1.1'」だけでした。このエラーを修正する方法はありますか? または、それを引き起こしているのは何ですか?
python - Python pip 依存関係範囲を生成するには?
私はPythonライブラリに取り組んでおり、現在pip-tools
依存関係を固定するために使用しています。
例: 基本requirements.in
:
pip-compile
このファイルで実行するとrequirements.txt
、次のようなものが生成されます (ここでは単純化されています)。
私の問題は、エンドユーザー向けの他のライブラリとの柔軟性が不足しているため、pypi で公開されるパッケージのバージョンを固定することはお勧めできないことです。これらの場合、依存関係の範囲を指定するのが一般的な方法のようです。
requirements.in
私の質問は、上記のような依存関係の範囲を自動生成する方法があるかどうかです。既存の依存関係解決ツールを使用して、すべてのライブラリと互換性のある最小バージョンと最大バージョンを生成するのは比較的簡単だと思います。(バージョンが指定されていないライブラリは、そのままにしておくことができます。)
このようなことを行うツールを見つけることができませんでした。他のライブラリの管理者はこのタスクを手動で実行していますか? requirements.in
上記で説明したアプローチでは、相互依存関係のないライブラリに手動で介入する必要があることは理解していますが、ほとんどの場合 (確かに私の場合)、これは面倒な作業を行う必要があります。