トレーニング
モジュール
JavaScript を使用する新しい Node.js プロジェクトを作成し、パッケージの依存関係を処理する - Training
Node.js プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 npm CLI とレジストリを使用して、Visual Studio Code を使ってライブラリとツールを JavaScript/TypeScript Web 開発の CommonJS プロジェクトに追加します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
vcpkg には、 クラス モードとマニフェスト モードの 2 つの操作モード があります。 ほとんどのユーザーには、マニフェスト モードをお勧めします。
マニフェスト モードでは、宣言型 JSON ファイルを使用して、プロジェクトまたはパッケージに関するメタデータを記述します。 マニフェスト ファイルには、 vcpkg.json
名が必要です。
マニフェスト モードは、作業ディレクトリにマニフェスト ファイル (vcpkg.json
) がある間に vcpkg install
コマンドを実行することによって実行されます。 マニフェスト モードでパッケージを インストールする方法の詳細については、先に読んでください。
マニフェスト モードは、バージョン管理custom レジストリなどの高度な機能を使用する場合にも必要です。
すべての vcpkg ポートには、インストールするパッケージに関するメタデータを記述する vcpkg.json
ファイルが含まれている必要があります。
vcpkg は、依存関係ツリーの計算、名前または説明によるパッケージの検索、機能の解決など、さまざまな目的でパッケージ マニフェスト内のメタデータを使用します。
{
"name": "fmt",
"version": "10.1.1",
"description": "Formatting library for C++. It can be used as a safe alternative to printf or as a fast alternative to IOStreams.",
"homepage": "https://github.com/fmtlib/fmt",
"license": "MIT",
"dependencies": [
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}
プロジェクトでマニフェスト ファイルを使用する主な目的は、依存関係を宣言することです。 プロジェクト マニフェストを使用する場合は、バージョンの制約とオーバーライドを指定して、依存関係の特定のバージョンをロックできます。 この機能は、クラシック モードでは使用できません。
{
"dependencies": [ "fmt", "zlib" ],
"builtin-baseline": "3426db05b996481ca31e95fff3734cf23e0f51bc",
"overrides": [
{ "name": "zlib", "version": "1.2.8" }
]
}
vcpkg は、 vcpkg-configuration.json
ファイルを使用して構成して、 パッケージ レジストリ または overlay ポートとトリプレット の場所を追加できます。
{
"default-registry": {
"kind": "git",
"baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
"repository": "https://github.com/microsoft/vcpkg"
},
"registries": [
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"packages": [ "beicode", "beison" ]
}
],
"overlay-ports": [
"C:\\dev\\my_vcpkg_ports"
]
}
マニフェスト ファイルを使用してパッケージをインストールするには、パッケージ引数を指定せずに vcpkg install
コマンドを使用します。
コマンドは、マニフェスト (vcpkg.json
) ファイルを含むディレクトリ、または --x-manifest-root=<path>
オプションを使用して提供されるマニフェスト ファイルへのパスから実行する必要があります。
マニフェスト モードでインストールされたパッケージは、クラシック モードの場合と同様に、グローバル installed
ディレクトリにはインストールされません。 代わりに、各マニフェストは、 vcpkg_installed
という名前の独自のインストール ディレクトリを取得します。 vcpkg_installed
ディレクトリは、マニフェスト ファイルを含む同じディレクトリに作成されます。
マニフェストごとに独立したインストール ツリーを使用すると、異なるプロジェクト間で依存関係を分離できます。 これにより、クラシック モードの重要な制限が回避され、各ポートの 1 つのバージョンのみをインストールできます。 マニフェスト モードでは、プロジェクトごとに分離されたポートのバージョンが保持されます。
マニフェスト ファイルでは、 機能"を使用して、機能、動作、依存関係の追加セットを定義できます。
プロジェクトでは、プロジェクトの一部に適用される依存関係を有効または無効にする機能を定義できます。 たとえば、プロジェクトに複数のコンポーネントが含まれている場合は、共通の依存関係を "dependencies"
リストに保持し、他のコンポーネントをそれぞれのコンポーネントに制限することができます。
プロジェクトの機能を有効にするには、次のいずれかの方法を使用できます。
--x-feature
オプションを vpckg install
コマンドに渡します。project()
への最初の呼び出しの前にVCPKG_MANIFEST_FEATURES
を設定します。--x-feature
オプションを渡します。{
"name": "my-game",
"dependencies": [ "grpc" ],
"features": {
"client": {
"description": "client game executable",
"dependencies": [ "sdl2", "bullet3" ]
},
"server": {
"description": "multiplayer server executable",
"dependencies": [ "proxygen" ]
},
"tests": {
"description": "development tests",
"dependencies": [ "gtest" ]
}
}
}
"クライアント" コンポーネントの依存関係のみをビルドするには、次のコマンドを実行します。
vcpkg install --x-feature=client
次に試すタスクを次に示します。
vcpkg.json
を読み取り、vcpkg-configuration.json
リファレンス記事を参照してください。vcpkg に関するフィードバック
vcpkg はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
トレーニング
モジュール
JavaScript を使用する新しい Node.js プロジェクトを作成し、パッケージの依存関係を処理する - Training
Node.js プロジェクトを作成し、パッケージを追加して、プロジェクト内のパッケージ依存関係を管理する方法を学習します。 npm CLI とレジストリを使用して、Visual Studio Code を使ってライブラリとツールを JavaScript/TypeScript Web 開発の CommonJS プロジェクトに追加します。