序文
これは
Node.js
プロジェクト全体の依存関係とメタデータを管理します。
たとえば、プロジェクトを取得した後、次のコマンドを使用してプロジェクトの依存関係をインストールする必要があります。
npm install
npm / yarn
このようなパッケージ管理ツールpackage.json
は、ファイルによってプロジェクトを識別し、プロジェクトの依存関係を処理する方法を知っています。
公式ドキュメント
https://docs.npmjs.com/cli/v8/configuring-npm/package-json
名前(必須)
プロジェクト名、すべて小文字、214文字以内、アンダースコア、ダッシュは使用できますが、スペースやその他の文字は使用できません。
バージョン(必須)
バージョン番号、フォーマットx.y.z
、NPMセマンティックバージョニング要件に準拠。
- 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"
},
...
]
プライベート
このプロパティが設定されている場合true
、npm
公開は拒否されます。これは、プライベートモジュールが意図せずに公開されるのを防ぐためです。
モジュールを内部リポジトリなどの特定の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
、および値を追加するために使用されます。特に、に構成パラメーターを提供するために使用されます。Scripts
Scripts
置き場
各内部コマンドに対応する実行可能ファイルの場所を指定します。次の設定で指定された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.json
gitHooks
Git 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アーキテクチャを指定します。