ホームページ >ウェブフロントエンド >jsチュートリアル >[整理と共有] 現在使用されている npm パッケージマネージャーを確認する方法

[整理と共有] 現在使用されている npm パッケージマネージャーを確認する方法

青灯夜游
青灯夜游転載
2023-02-01 20:00:352245ブラウズ

現在の npm パッケージ マネージャーを確認するにはどうすればよいですか?次の記事では、現在使用している npm パッケージ マネージャーを確認する方法を説明します。お役に立てば幸いです。

[整理と共有] 現在使用されている npm パッケージマネージャーを確認する方法

npm を使用するのが一般的です。依存関係のインストール。ただし、プロジェクトのサイズと数が増加すると、npm ではインストール速度の遅さやサイズが大きくなりすぎるという問題が発生します。 Yarn や pnpm などのパッケージ マネージャーを使用すると、上記の問題を解決できます。

チーム メンバーに同じパッケージ マネージャーの使用を強制したい場合、またはパッケージ マネージャーごとに異なるロジックを処理したい場合。現在使用しているパッケージ マネージャーを確認する必要があります。

実装方法

Vue ウェアハウス 現在、開発者は pnpm を使用することを余儀なくされており、実装方法も非常に巧妙です。

まず、npm スクリプトを実行するときに、組み込みの pre コマンドを使用して事前スクリプトを実行し、次の process.env.npm_execpath を使用してパッケージを取得します。 pre-script 開発者が使用するパッケージ マネージャーの種類を決定するマネージャーのファイル パス。 [関連チュートリアルの推奨事項: nodejs ビデオ チュートリアル ]

関連するコードは次のとおりです:

// package.json
"scripts": {
    "preinstall": "node ./scripts/preinstall.mjs",
},
// preinstall.mjs
if (!/pnpm/.test(process.env.npm_execpath || '')) {
  console.warn(
    `\u001b[33mThis repository requires using pnpm as the package manager ` +
      ` for scripts to work properly.\u001b[39m\n`
  )
  process.exit(1)
}

pre コマンド

in package.json については、npm スクリプトがどのように実行されるかをよく理解しておく必要があります。

"scripts": {
    "dev": "vite",
},

上記のコードを読むと、npm run dev を通じてスクリプトを実行できます。

カスタム スクリプト名に加えて、npm には 2 つの組み込み pre および post 命令もあり、これらはカスタム名の前に pre を結合します。プリフック命令を実装できます。

"scripts": {
    "dev": "vite",
    "predev": "node predev.js"
    "postdev": "node postdev.js"
},

このように npm run dev コマンドを実行すると、ターミナルは最初に npm run predev を自動的に実行し、次に npm run dev を実行します。このようにして、カスタム スクリプトを実行する前にパッケージ マネージャーを判断できます。

process.env.npm_execpath

vue@3.2.20

より前は、Vue のパッケージ マネージャーは Yarn でしたが、後に pnpm に変更されました。 yarn を使用する場合、パッケージ マネージャーによってチェックされるコードは次のとおりです:

// scripts/checkYarn.js
if (!/yarn\.js$/.test(process.env.npm_execpath || '')) {
    console.warn(
    '\u001b[33mThis repository requires Yarn 1.x for scripts to work properly.\u001b[39m\n'
  )
  process.exit(1)
}

pnpm に変更される場合、パッケージ マネージャーによってチェックされるコードは次のとおりです:

// preinstall.mjs
if (!/pnpm/.test(process.env.npm_execpath || '')) {
  console.warn(
    `\u001b[33mThis repository requires using pnpm as the package manager ` +
      ` for scripts to work properly.\u001b[39m\n`
  )
  process.exit(1)
}

比較すると、 vue は

process.env.npm_execpath

でパッケージマネージャーの種類を判別でき、パッケージマネージャーのパスを取得してキーワードで検索することでパッケージ管理の種類を判別できます。

概要

Vue ウェアハウス

を使用すると、npm スクリプト組み込みの pre を使用できます。 コマンドは事前スクリプトを実行します。事前スクリプトでは、process.env.npm_execpath を使用してパッケージ マネージャーのファイル パスを取得し、開発者が使用するパッケージ マネージャーの種類を決定します。 ノード関連の知識の詳細については、

nodejs チュートリアル

を参照してください。

以上が[整理と共有] 現在使用されている npm パッケージマネージャーを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。