npm-package.json構成アイテムの詳細な説明

序文

これはNode.jsプロジェクト全体の依存関係とメタデータを管理します。

たとえば、プロジェクトを取得した後、次のコマンドを使用してプロジェクトの依存関係をインストールする必要があります。

npm install

npm / yarnこのようなパッケージ管理ツールpackage.jsonは、ファイルによってプロジェクトを識別し、プロジェクトの依存関係を処理する方法を知っています。

公式ドキュメント

https://docs.npmjs.com/cli/v8/configuring-npm/package-json

名前(必須)

プロジェクト名、すべて小文字、214文字以内、アンダースコア、ダッシュは使用できますが、スペースやその他の文字は使用できません。

バージョン(必須)

バージョン番号、フォーマットx.y.zNPMセマンティックバージョニング要件に準拠。

  • x:メジャーバージョン番号、新機能、以前のバージョンとの互換性はありません。
  • y:マイナーバージョン番号、新機能、ただし以前のバージョンと互換性があります。
  • z:PATCHパッチのバージョン番号、バグの修正、以前のバージョンとの互換性

説明

アイテムの説明は、アイテムを説明し、検索用にnpm含めるます。ユーザーが検索すると、キーワードとしてリストされます。

ライセンス

BSDソフトウェアライセンス。値は通常、 /MITなどのライセンスの識別子コードです。

著者

プロジェクトの作者、一人。

"author": "李拴蛋"

JSONオブジェクトにすることもできます:

"author": {
    
    
    "name": "李拴蛋",
    "email": "[email protected]",
    "url": "https://www.baidu.com"
}

寄稿者

プロジェクトの作成者、人々のグループ(組織)、配列型、および配列内の各項目は同じauthor形式です。

"contributors": [
	{
    
    
		"name": "李拴蛋",
	    "email": "[email protected]",
	    "url": "https://www.baidu.com"
	},
	...
]

プライベート

このプロパティが設定されている場合truenpm公開は拒否されます。これは、プライベートモジュールが意図せずに公開されるのを防ぐためです。

モジュールを内部リポジトリなどの特定のnpmリポジトリpublishConfig以下のリポジトリパラメータを設定します。

publishConfig

この構成は、モジュールが公開されるときに使用される値のコレクションです。モジュールをデフォルトで最新のマークにしたくない場合、またはデフォルトでパブリックリポジトリに公開したくない場合は、ここtagまたは。

キーワード

キーワードをnpm検索するため。

主要

を使用require('moduleName')するときます。デフォルト値はモジュールのルートディレクトリにありますindex.js

browserブラウザ環境とnode環境の両方を使用できます。

ブラウザ

ブラウザ環境でのパッケージnpmエントリファイルを定義します。browser

スクリプト

スクリプトコマンドを実行するためのnpmコマンド指定します。たとえばserve、実行時に実際に実行されるコマンドを指定しnpm run serveます。

次の設定は、実行時にnpm run serve / npm run lint / npm run mock実行。

"scripts": {
    
    
    "serve": "concurrently \"npm:mock\" \"vue-cli-service serve\"",
    "lint": "vue-cli-service lint",
    "mock": "cd mock && ts-node-dev mock-server.ts"
}

構成

のライフサイクル全体で利用可能なコマンドライン環境変数、オブジェクトJSON、および値を追加するために使用されます。特に、に構成パラメーターを提供するために使用されます。ScriptsScripts

置き場

各内部コマンドに対応する実行可能ファイルの場所を指定します。次の設定で指定されたsomeToolコマンドに対応する実行可能ファイルは、binサブディレクトリにありsomeTool.jsます。

"bin": {
    
    
    "someTool": "./bin/someTool.js"
}

npmこのファイルを検索し、node_modules/.bin/ディレクトリnode_modules/.bin/someTool

node_modules/.bin/ディレクトリ実行時にシステム変数に追加されるため、PATHこれらのスクリプトは実行時にパスなしでコマンドを介して直接実行できます。npm

node_modules/.bin/ディレクトリ内のすべてのコマンドは、npm run [命令]を使用して実行できます。コマンドラインに入力したnpm run後、Tabキーを押して、使用可能なすべてのコマンドを表示します。

エンジン

のバージョン、エディション、ブラウザNode.jsなど、実行するプラットフォームを指定します。NPM

リポジトリ

コードが保存さGithubれ 。

"repository": {
    
    
    "type": "git",
    "url": "https://github.com/..."
}

依存関係(重要)

JSONプロジェクトの実行に依存する必要のあるモジュールとオブジェクトタイプを指定します。各オブジェクトメンバーは、モジュール名と対応するバージョン要件で構成され、依存モジュールとそのバージョン範囲を示します。

"dependencies": {
    
    
    "echarts": "4.2.1",
    "axios": "^0.19.0",
    "js-cookie": "~2.2.0",
    "sortablejs": "latest"
}

バージョン番号は次のとおりです。

  • バージョン番号を指定します。上記の例のようechartsに、指定されたバージョンのみがインストールされます。
  • ^+バージョン番号を指定します。上記の例のようaxiosに、同じメジャーバージョン番号で最新バージョンをインストールすることを意味します。つまり、バージョンのみをインストールでき、0.x.xバージョンインストールできません1.x.x
  • ~+バージョン番号を指定します。上記の例のようjs-cookieに、同じメジャーバージョン番号とマイナーバージョン番号で最新バージョンをインストールすることを意味します。つまり、バージョンのみをインストールでき、2.2.xバージョンインストールできません2.3.x
  • latest:最新バージョンを直接インストールします(注意してください)。

devDependencies(重要)

プロジェクト開発が依存する必要のあるモジュールを指定します。dependenciesこれはJSONオブジェクトタイプでもあります。各オブジェクトメンバーは、モジュール名と対応するバージョン要件で構成され、依存モジュールとそのバージョン範囲を示します。

バージョン番号の認定規則は、dependencies(上方)と一致しています。

バグ

課題追跡システムのアドレスまたは電子メールアドレス(npm bugs使用する場合)。例:

"bugs": "https://github.com/..."

gitHooks

@vue/cli-serviceインストール後にインストールされるため、のフィールドで簡単に指定できyorkieますpackage.jsongitHooksGit Hook

ホームページ

プロジェクトurlのホームページ、例:

"homepage": "https://github.com/xxx/project"

ファイル

これは、パッケージを依存関係としてインストールするときに含めるエントリを記述したファイルの配列です。配列内でフォルダーが宣言されている場合は、フォルダー内のファイルも含まれます。特定の特別なファイルとディレクトリも、ファイル配列に存在するかどうかに関係なく、含まれるか除外されます。

以下文件无论是否设置,总是包含:
*   `package.json`
*   `README`
*   `CHANGES`/`CHANGELOG`/`HISTORY`
*   `LICENSE`/`LICENCE`
*   `NOTICE`
*   The file in the “main” field

以下文件总是被忽略:
*   `.git`
*   `CVS`
*   `.svn`
*   `.hg`
*   `.lock-wscript`
*   `.wafpickle-N`
*   `.*.swp`
*   `.DS_Store`
*   `._*`
*   `npm-debug.log`
*   `.npmrc`
*   `node_modules`
*   `config.gypi`
*   `*.orig`
*   `package-lock.json`(use shrinkwrap instead)

peerDependencies

プロジェクトとそれが依存するモジュールが同時に別のモジュールに依存する場合がありますが、依存するバージョンは異なります。

たとえば、プロジェクトはモジュールAとモジュールBのバージョン1.0に依存しており、モジュールA自体はモジュールBのバージョン2.0に依存しています。

ほとんどの場合、これは問題ではなく、Bモジュールの2つのバージョンが共存して同時に実行できます。ただし、この依存関係がユーザーに公開されるという問題が発生する状況があります。

最も一般的なシナリオはプラグインです。たとえば、モジュールAはモジュールBのプラグインです。ユーザーがインストールしたBモジュールはバージョン1.0ですが、AプラグインはBモジュールバージョン2.0でのみ使用できます。

この時点で、ユーザーがバージョン1.0のBのインスタンスをAに渡すと、問題が発生します。したがって、テンプレートをインストールするときに、AとBを一緒にインストールする場合は、Bを2.0モジュールにする必要があることをユーザーに通知するメカニズムが必要です。

peerDependenciesこのフィールドは、プラグインが必要とするメインツールのバージョンを指定するために使用されます。

{
    
    
  "name": "chai-as-promised",
  "peerDependencies": {
    
    
    "chai": "1.x"
  }
}

上記のコードは、chai-as-promisedモジュールに、メインプログラムchaiを一緒にインストールする必要がありchai、バージョンが1.xである必要があることを指定しています。プロジェクトchaiで、エラーが報告されます。

npmバージョン3.0以降、peerDependenciesデフォルトではインストールされていないことに注意してください。

os

プロジェクトを実行するオペレーティングシステムを指定します。

CPU

プロジェクトを実行するCPUアーキテクチャを指定します。

おすすめ

転載: blog.csdn.net/weixin_44198965/article/details/124047425