目次- 1. 必須属性
- 2. 説明情報
- 1. 説明
- 2. キーワード
- 3. 著者
- 4. 貢献者
- 5. ホームページ
- 6. リポジトリ
- 7. バグ
- 3. 依存関係の構成
- 1. 依存関係
- 2. 開発依存関係
- 3. ピア依存関係
- 4. オプションの依存関係
- 5. バンドルされた依存関係
- 6. エンジン
- 4. スクリプトの設定
- 5. ファイルとディレクトリ
- 1. メイン
- 2. ブラウザ
- 3. モジュール
- 4. ビン
- 5. ファイル
- 6. 男性
- 7. ディレクトリ
- 6. リリース構成
- 1. プライベート
- 2. グローバルを好む
- 3. 設定を公開する
- 4. オス
- 5. CPU
- 6. ライセンス
- 7. サードパーティの構成
- 1. タイピング
- 2. eslint設定
- 3. バベル
- 4. 解凍
- 5. lintステージ
- 6. gitフック
- 7. ブラウザリスト
序文: 今日は、フロントエンドのpackage.json ファイルの構成を見てみましょう。これらの構成を完全に理解することで、開発効率を向上させ、プロジェクトを標準化するのに役立ちます。記事にはたくさんの内容が含まれているので、まずは勉強用に保存しておくことをお勧めします! すべてのフロントエンド プロジェクトには、プロジェクトの構成ファイルであるpackage.json ファイルがあります。一般的な構成には、プロジェクトの起動の構成、コマンドのパッケージ化、依存パッケージの宣言などが含まれます。 package.json ファイルは JSON オブジェクトであり、その各メンバーは現在のプロジェクトの設定です。フロントエンドの管理者として、 package.json のどの構成が日常の開発に密接に関係しているのでしょうか?このファイルを詳しく見てみましょう。 新しいプロジェクトをビルドする場合、スキャフォールディングは、プロジェクトのルート ディレクトリにあるpackage.jaon 構成ファイルを初期化するのに役立ちます。プロジェクトがreact scaffold (create-react-app) を使用して初期化されると、 package.json ファイルの内容は次のようになります。
{
"名前": "my-app",
"バージョン": "0.1.0",
「プライベート」:true、
「依存関係」: {
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^11.2.7",
"@testing-library/ユーザーイベント": "^12.8.3",
"反応": "^17.0.2",
"反応dom": "^17.0.2",
"react-scripts": "4.0.3",
"ウェブバイタル": "^1.1.2"
},
「スクリプト」: {
"開始": "react-scripts 開始",
"ビルド": "react-scriptsビルド",
"テスト": "react-scripts テスト",
"eject": "react-scripts eject"
},
"eslintConfig": {
「拡張」: [
「リアクトアプリ」、
「react-app/jest」
]
},
「ブラウザリスト」: {
"生産": [
">0.2%",
「死んでない」
「op_mini すべてではない」
]、
"発達": [
「最後の 1 つの Chrome バージョン」、
「Firefoxの最新1バージョン」
「最後の 1 つの Safari バージョン」
]
}
}
新しいプロジェクトをローカルにクローンする場合は、 npm install (yarn install) コマンドを実行して、プロジェクトに必要な依存ファイルをインストールする必要があります。このコマンドを実行すると、 package.json ファイル内の構成情報、つまり構成プロジェクトに必要な実行環境と開発環境に応じて、必要なモジュールが自動的にダウンロードされます。 package.json 内の一般的な構成項目は次のとおりです。 
1. 必須属性package.json で最も重要な 2 つのフィールドはname とversion です。これらは両方とも必須です。これらがないと、 npm install コマンドを正常に実行できません。 npm は、 package.json ファイルが名前とバージョン番号を一意の識別子として使用することを指定します。
1. 名前name 分かりやすく、プロジェクトの名前であり、文字列です。
name フィールドに名前を付けるときは、次の点に注意する必要があります。 - 名前は 214 文字以下で、「.」または「_」で始まってはならず、大文字を含めることもできません (これは、パッケージが
npm で公開されると、このプロパティに基づいて独自のURL が取得されるため、 non-url-safe を含めることができないためです)。 - 名前は、モジュールをインポートする
require ("") に引数として渡すことができるため、できるだけ短く意味のあるものにする必要があります。 - 名前は他のモジュールと同じにすることはできません。npm
npm view コマンドを使用して、モジュール名が重複していないかどうかを確認できます。重複していない場合は、404 エラー メッセージが表示されます。

npm パッケージに対応するパッケージがある場合は、パッケージの詳細情報が表示されます。

実際、私たちが開発するプロジェクトの多くはnpm で公開されていないため、名前が標準であるかどうかはそれほど重要ではない可能性があり、プロジェクトの正常な動作には影響しません。 npm で公開する必要がある場合は、 name フィールドが要件を満たしている必要があります。 2. バージョンversion フィールドは、プロジェクト パッケージのバージョン番号 (文字列) を示します。各プロジェクトの変更後、リリースされる直前に、プロジェクトのバージョン番号を同期的に変更する必要があります。
バージョン番号の使用仕様は次のとおりです。 - バージョン番号は、セマンティック バージョニング 2.0.0 仕様に従って、メジャー バージョン番号.マイナー バージョン番号.リビジョン番号の形式で命名されます。通常、メジャー バージョン番号の変更は機能上の大きな変更を意味し、マイナー バージョン番号の変更は新機能の追加を意味し、リビジョン番号の変更はバグの修正を意味します。
- バージョンに大きな変更があり、不安定で、予想される互換性要件を満たさない可能性がある場合は、プレリリース バージョンをリリースする必要があります。プレリリース バージョンはバージョン番号の後に追加され、ドットで区切られた識別子とバージョン コンパイル情報は「-」記号で接続されます。つまり、内部バージョン (alpha)、パブリック ベータ バージョン (beta)、候補バージョン (rc、リリース候補) となります。
react を例にとると、次のコマンドを使用して npm パッケージのバージョン情報を表示できます。
// 最新バージョンを表示 npm view react version
// すべてのバージョンを表示 npm view react バージョン
2 番目のコマンドを実行すると、結果は次のようになります。 
2. 説明情報package.jaon には、プロジェクト パッケージの説明情報に関連する 5 つの設定フィールドがあります。それぞれのフィールドの意味を見てみましょう。
1. 説明description フィールドは、このプロジェクト パッケージを説明するために使用されます。これは、他の開発者がnpm 検索でプロジェクト パッケージを見つけられるようにする文字列です。
2. キーワードkeywords フィールドは、このプロジェクト パッケージのキーワードを表す文字列配列です。 description と同様に、プロジェクト パッケージの露出を高めるために使用されます。
以下は eslint パッケージの説明とキーワードです。 
3. 著者author その名前が示すように、プロジェクト パッケージの作成者を示します。 2 つの形式があり、1 つは文字列形式です。
もう 1 つはオブジェクト形式です。
"著者": {
「名前」:「CUGGZ」、
「メール」:「[email protected]」、
「URL」:「https://juejin.cn/user/3544481220801815」
}
4. 貢献者contributors 、プロジェクト パッケージの貢献者を表します。author とは異なり、このフィールドはすべての貢献者を含む配列です。また、次の 2 つの書き方があります。
「貢献者」: [
{
「名前」:「CUGGZ0」、
「メール」:「[email protected]」、
「URL」:「https://juejin.cn/user/3544481220801815」
},
{
「名前」:「CUGGZ1」、
「メール」:「[email protected]」、
「URL」:「https://juejin.cn/user/3544481220801815」
}
]
5. ホームページhomepage プロジェクトのホームページ アドレスであり、文字列です。
6. リポジトリrepository 、コードが保存されているリポジトリのアドレスを表し、通常は 2 つの形式で記述されます。 1 つ目は文字列形式です。
「リポジトリ」: 「https://github.com/facebook/react.git」
さらに、バージョン管理システムを明示的に設定することもできます。この場合は、オブジェクトの形式で設定します。
「リポジトリ」: {
「タイプ」: 「git」、
「URL」: 「https://github.com/facebook/react.git」
}
7. バグbugs 、プロジェクト内の問題を送信するためのアドレスを表します。このフィールドは、問題を送信するためのアドレスとフィードバック用の電子メール アドレスを追加できるオブジェクトです。
「バグ」: {
「URL」: 「https://github.com/facebook/react/issues」、
「メール」:「[email protected]」
}
最も一般的なbugs Github のissues ページにあります。上記はreact のissues ページのアドレスです。 3. 依存関係の構成通常、プロジェクトは 1 つ以上の外部依存パッケージに依存します。依存パッケージのさまざまな用途に応じて、次の 5 つのプロパティで構成できます: dependencies 、 devDependencies 、 peerDependencies 、 bundledDependencies 、 optionalDependencies 。それぞれの属性の意味を見てみましょう。 1. 依存関係dependencies フィールドは、プロジェクトの運用環境に必要な依存パッケージを宣言します。 npm またはyarn を使用してnpm パッケージをインストールすると、 npm パッケージがこの構成項目に自動的に挿入されます。
npm install <パッケージ名>
yarn add <パッケージ名>
依存関係をインストールするときに--save パラメータを使用すると、新しくインストールされたnpm パッケージもdependencies プロパティに書き込まれます。
npm install --save <パッケージ名>
このフィールドの値は、メンバーがモジュール名と対応するバージョン要件で構成され、依存モジュールとそのバージョン範囲を示すオブジェクトです。
「依存関係」: {
"反応": "^17.0.2",
"反応dom": "^17.0.2",
"react-scripts": "4.0.3",
},
ここでの各構成はkey-value 値) であり、 key モジュール名を表し、 value モジュールのバージョン番号を表します。 バージョン番号は、メジャー バージョン番号.マイナー バージョン番号.リビジョン番号の形式に従います。 - 修正バージョン:上記の
react-scripts バージョン 4.0.3 は修正バージョンです。インストール時にはこの指定されたバージョンのみがインストールされます。 - チルダ:たとえば、~4.0.3 は最新バージョンの 4.0.x (4.0.3 以上) をインストールすることを意味し、インストール中にメジャー バージョン番号とマイナー バージョン番号は変更されません。
- 番号を挿入:たとえば、上記の react バージョン ^17.0.2 は、17.xx の最新バージョン (17.0.2 未満ではない) をインストールすることを意味し、インストール中にメジャー バージョン番号は変更されません。メジャーバージョン番号が 0 の場合、キャレットとチルダ文字の動作は同じになります。
- 最新:最新バージョンをインストールします。
- 実稼働環境で予期しない問題を回避するために、
dependencies にテスト依存関係や移行依存関係を含めないようにすることが重要です。
2. 開発依存関係devDependencies 、開発を支援するために、 Webpack 、 Eslint 、 Babel など、開発フェーズ中に必要な依存パッケージを宣言します。これらは、開発マシンにインストールするだけでよく、運用環境でコードを実行する必要がないという点でdependencies とは異なります。これらのパッケージはパッケージ化や起動時には必要ないので、これらの依存関係をdevDependencies に追加できます。これらの依存関係は、ローカルでnpm install 指定すると引き続きインストールおよび管理されますが、実稼働環境ではインストールされません。
npm またはyarn を使用してパッケージをインストールする場合、次のパラメータを指定すると、新しくインストールされた npm パッケージがこのリストに自動的に挿入されます。
npm install --save-dev <パッケージ名>
yarn add --dev <パッケージ名>
「devDependencies」: {
"自動プレフィックス": "^7.1.2",
"バベルコア": "^6.22.1"
}
3. ピア依存関係場合によっては、プロジェクトとそれが依存するモジュールの両方が別のモジュールに依存しているものの、依存するバージョンが異なる場合があります。たとえば、プロジェクトはモジュール A とモジュール B のバージョン 1.0 に依存しており、モジュール A 自体はモジュール B のバージョン 2.0 に依存しています。ほとんどの場合、これは問題ではなく、モジュール B の両方のバージョンが共存して同時に実行できます。ただし、この依存関係がユーザーに公開されると問題が発生します。 最も一般的なシナリオはプラグインです。たとえば、モジュール A はモジュール B のプラグインです。ユーザーがインストールした B モジュールはバージョン 1.0 ですが、A プラグインは B モジュールのバージョン 2.0 でのみ使用できます。このとき、ユーザーが B のバージョン 1.0 のインスタンスを A に渡すと、問題が発生します。したがって、テンプレートをインストールするときに、A と B が一緒にインストールされる場合、B は 2.0 モジュールである必要があることをユーザーに通知するメカニズムが必要です。 peerDependencies フィールドは、プラグインが必要なメイン ツールのバージョンを指定するために使用されます。
"名前": "約束通りのチャイ",
「ピア依存関係」: {
"チャイ": "1.x"
}
上記のコードは、 chai-as-promised モジュールをインストールするときに、メイン プログラム chai も一緒にインストールする必要があり、chai のバージョンが 1.x である必要があることを指定しています。プロジェクトが chai バージョン 2.0 の依存関係を指定している場合、エラーが報告されます。 npm バージョン 3.0 以降では、 peerDependencies デフォルトでインストールされなくなったことに注意してください。 4. オプションの依存関係パッケージが見つからないoptionalDependencies やパッケージのインストールに失敗した場合にもnpm 実行を継続する必要がある場合は、パッケージをoptionalDependencies オブジェクトに配置することができます。optionalDependencies オブジェクト内のパッケージは、 dependencies 内の同じ名前のパッケージを上書きするため、1 か所で設定するだけで済みます。 optionalDependencies 内の依存関係が正常にインストールされない可能性があるため、例外処理を実行する必要があることに注意してください。そうしないと、この依存関係を取得できない場合にエラーが報告されます。 5. バンドルされた依存関係上記の依存関係関連の構成項目はすべてオブジェクトですが、 bundledDependencies 構成項目は配列であり、このパッケージがリリースされるときに一緒にパッケージ化されるいくつかのモジュールを指定できます。 このフィールド配列の値は、 dependencies およびdevDependencies で宣言されたパッケージである必要があることに注意してください。 6. エンジン古いプロジェクトをメンテナンスする場合、 npm パッケージのバージョンや Node のバージョンに特別な要件がある場合があります。条件が満たされない場合、プロジェクトを実行できない可能性があります。プロジェクトをすぐに動作させるには、 engines フィールドに特定のバージョン番号を指定します。
「エンジン」: {
"ノード": ">=8.10.3 <12.13.0",
"npm": ">=6.9.0"
}
注:エンジンは説明のみを目的としています。ユーザーがインストールしたバージョンが要件を満たしていない場合でも、依存パッケージのインストールには影響しません。
4. スクリプトの設定1. スクリプトscripts は、 package.json に組み込まれたスクリプト エントリです。これはkey-value ペアの構成です。キーは、npm run を通じて実行できる実行可能コマンドです。基本的なscripts コマンドを実行するだけでなく、pre とpost を組み合わせて、事前操作と事後操作を完了することもできます。 まず、 scripts のセットを見てみましょう。
「スクリプト」: {
"dev": "ノードindex.js",
"predev": "ノードbeforeIndex.js",
"postdev": "ノード afterIndex.js"
}
これら 3 つの js ファイルにはそれぞれconsole があります。
// インデックス.js
console.log("スクリプト: index.js")
// beforeIndex.js
console.log("scripts: index.js の前")
// afterIndex.js
console.log("scripts: index.js の後")
npm run dev コマンドを実行すると、出力は次のようになります。
スクリプト: index.js の前
スクリプト: index.js
スクリプト: index.js 以降
ご覧のとおり、3 つのコマンドがすべて実行され、実行順序はpredev→dev→postdev です。 scripts コマンドに特定のシーケンスがある場合は、これらの 3 つの構成項目を使用して実行コマンドを個別に構成できます。 スクリプト プロパティを構成することで、いくつかの一般的な操作コマンドを定義できます。
「スクリプト」: {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
「開始」: 「npm run dev」、
"ユニット": "jest --config test/unit/jest.conf.js --coverage",
"テスト": "npm 実行ユニット",
"lint": "eslint --ext .js,.vue src テスト/ユニット",
"ビルド": "ノードビルド/build.js"
}
これらのスクリプトはコマンドライン アプリケーションです。これらは、 npm run XXX またはyarn XXX を呼び出すことで実行できます。ここで、 XXX はコマンドの名前です。 たとえば、 npm run dev 。コマンドには任意の名前を使用でき、スクリプトは任意のものを使用できます。 このフィールドを適切に使用することで、開発効率が大幅に向上します。 2. 設定config フィールドは、以下に示すように、 scripts ランタイムの構成パラメータを構成するために使用されます。
npm run start を実行すると、ポート フィールドはnpm_package_config_port 環境変数にマップされます。
コンソールログ(process.env.npm_package_config_port) // 3000
ユーザーはnpm config set foo:port 3001 コマンドを実行してポート値を上書きできます。 5. ファイルとディレクトリpackage.json 内のファイルとディレクトリに関連するプロパティを見てみましょう。
1. メインmain フィールドは、ロードするエントリ ファイルを指定するために使用され、 browser とNode 環境の両方で使用できます。プロジェクトをnpm パッケージとして公開する場合、 require を使用して npm パッケージをインポートすると、main フィールドにリストされているファイルのmodule.exports プロパティが返されます。このフィールドが指定されていない場合、デフォルトはプロジェクト ルート ディレクトリのindex.js になります。見つからない場合はエラーが報告されます。
このフィールドの値は文字列です: 2. ブラウザbrowser フィールドでは、 browser 環境でのnpm パッケージのエントリ ファイルを定義できます。 npm パッケージが Web 側でのみ使用され、サーバー側での使用が厳しく禁止されている場合は、 browser を使用してエントリ ファイルを定義します。
3. モジュールmodule フィールドでは、 browser 環境とノード環境の両方で使用できるnpmパッケージのESM仕様エントリファイルを定義できます。 npm パッケージが ESM 準拠のパッケージをエクスポートする場合は、 module を使用してエントリ ファイルを定義します。
"モジュール": "./src/index.mjs",
注: .js ファイルではcommonJS 標準構文(require('xxx')) が使用され、.mjs ファイルでは ESM 標準構文 (import 'xxx') が使用されます。
上記の 3 つのエントリ ファイルの構成は、特に使用シナリオによって異なります。 Web 環境では、 loader を使用して ESM (ES モジュール) をロードする場合、これら 3 つの構成のロード順序はbrowser→module→main となります。 require を使用してCommonJS モジュールをロードする場合、ロード順序はmain→module→browser となります。 Webpack プロジェクトをビルドするときにはターゲット オプションがあり、デフォルトでは Web、つまり Web アプリケーションがビルドされます。ノード プロジェクトなどの同型プロジェクトをコンパイルする必要がある場合は、ビルドのためにwebpack.config.js のターゲット オプションを node に設定するだけで済みます。 Node 環境で CommonJS モジュールまたは ESM をロードする場合、メイン フィールドのみが有効になります。 4. ビンbin フィールドは、各内部コマンドに対応する実行可能ファイルの場所を指定するために使用されます。
「ビン」: {
"someTool": "./bin/someTool.js"
}
ここで、 someTool コマンドに対応する実行可能ファイルは bin ディレクトリ内のsomeTool.js であり、 someTool.js シンボリック リンクnode_modules/.bin/someTool を作成します。実行時にnode_modules/.bin/ ディレクトリがシステムの PATH 変数に追加されるため、npm を実行するときに、パスなしでコマンドを通じてこれらのスクリプトを直接呼び出すことができます。したがって、次のように短縮できます。
スクリプト: {
開始: './node_modules/bin/someTool.js ビルド'
}
// 省略形スクリプト: {
開始: 'someTool ビルド'
}
node_modules/.bin/ ディレクトリ内のすべてのコマンドはnpm run [command] 形式を使用して実行できます。
上記の構成では、 package.json にローカル ファイル名にマップされる bin フィールドが提供されます。npm パッケージは、このファイルをグローバル インポートのプレフィックス/修正にリンクします。または、このプロジェクトで使用するためにローカルのnode_modules/.bin/ ファイルにリンクします。 5. ファイルファイル構成は、 npm パッケージを依存パッケージとしてインストールするときに指定する必要があるファイルのリストを記述する配列です。 npm パッケージが公開されると、files で指定されたファイルがnpm サーバーにプッシュされます。フォルダーが指定されている場合は、フォルダーの下にあるすべてのファイルが送信されます。
「ファイル」: [
"ライセンス"、
「Readme.md」、
"index.js",
「lib/」
]
送信したくないファイルがある場合は、プロジェクトのルートディレクトリに新しい.npmignore ファイルを作成し、送信する必要のないファイルを記述して、ジャンクファイルがnpm にプッシュされるのを防ぐことができます。このファイルの形式は.gitignore に似ています。このファイルに書き込まれたファイルは、ファイル属性に書き込まれている場合でも除外されます。たとえば、このファイルに次のように記述できます。
ノードモジュール
.vscode
建てる
.DS_ストア
6. 男性man コマンドは Linux のヘルプ コマンドです。このコマンドを使用すると、Linux のコマンド ヘルプ、設定ファイル ヘルプ、プログラミング ヘルプなどの情報を表示できます。 node.js モジュールがグローバル コマンド ライン ツールである場合、man 属性を使用して、man コマンドがpackage.json 内を検索するドキュメント アドレスを指定できます。
"男": [
"./man/npm-access.1",
"./man/npm-audit.1"
]
man フィールドには 1 つ以上のファイルを指定できます。man {パッケージ名} を実行すると、ドキュメントの内容がユーザーに表示されます。 注記: - man ファイルは数字で終わる必要があり、圧縮されている場合は .gz サフィックスを使用できます。この番号は、ファイルがどの man セクションにインストールされているかを示します。man ファイル名がモジュール名で始まっていない場合は、インストール時にモジュール名のプレフィックスが追加されます。
上記の構成では、次のコマンドを使用してドキュメントを表示できます。 7. ディレクトリdirectories フィールドは、プロジェクト ディレクトリを指定するために使用されます。 Node.js モジュールはCommonJS モジュール化仕様に基づいて実装されており、CommonJS 仕様に厳密に従う必要があります。パッケージ プロジェクト記述ファイルpackage.json に加えて、モジュール ディレクトリには次のディレクトリも含まれている必要があります。
- bin: 実行可能なバイナリファイルを保存するディレクトリ
- lib: jsコードが保存されるディレクトリ
- doc: ドキュメントを保存するためのディレクトリ
- test: ユニットテストケースコードを保存するディレクトリ
- ...
実際のプロジェクト ディレクトリでは、この仕様に従って名前を付けられない場合があります。そのため、 directories フィールドで各ディレクトリに対応するファイル パスを指定できます。
「ディレクトリ」: {
"bin": "./bin",
"lib": "./lib",
"ドキュメント": "./doc",
「テスト」「./テスト」、
"男": "./男"
},
この属性には実際には実用的な用途はありませんが、将来的にはより有意義な用途が生まれる可能性も否定できません。 6. リリース構成npm プロジェクト パッケージのリリースに関連する設定を見てみましょう。
1. プライベートprivate フィールドは、誤ってプライベート ライブラリを npm サーバーに公開することを防ぎます。このフィールドを true に設定するだけです: 2. グローバルを好むpreferGlobal フィールドは、ユーザーがモジュールをグローバル モジュールとしてインストールしない場合に true に設定されていると警告が表示されることを示します。これは実際にユーザーによる部分的なインストールの実行を妨げるものではなく、誤解を防ぐための注意喚起のみを提供します。
3. 設定を公開するpublishConfig 構成は、モジュールが公開されたときに有効になり、公開時に構成項目のコレクションを設定するために使用されます。モジュールをデフォルトで最新としてマークしたくない場合、またはモジュールをパブリック リポジトリに公開したくない場合は、ここでタグまたはリポジトリ アドレスを設定できます。より詳細な設定については、 npm-config を参照してください。
通常、 publishConfig はprivate と一緒に使用されます。モジュールを特定のnpm リポジトリにのみ公開したい場合は、次のように設定できます。
「プライベート」:true、
「公開構成」: {
"タグ": "1.1.0",
「レジストリ」: 「https://registry.npmjs.org/」、
「アクセス」:「公開」
}
4. オスos フィールドを使用すると、 npm パッケージを使用できるオペレーティング システムと使用できないオペレーティング システムを設定できます。 Linux でのみ実行されるnpm パッケージを開発する場合、不要な例外を回避するために、 Windows システムを使用しているユーザーはそれをインストールしないことをお勧めします。この場合、os 構成を使用できます。
"os" ["linux"] // 適用可能なオペレーティングシステム "os" ["!win32"] // 無効なオペレーティングシステム 5. CPUこの構成は OS 構成に似ています。CPU CPU 使用すると、ユーザーのインストール環境をより正確に制限できます。
"cpu" ["x64", "AMD64"] // 適用可能なCPU
"cpu" ["!arm", "!mips"] // 無効なCPU
ご覧のとおり、ブラックリストとホワイトリストの違いは、ブラックリストの前に「!」が付いていることです。 6. ライセンスlicense フィールドは、ソフトウェアのオープン ソース契約を指定するために使用されます。オープン ソース契約では、コードを取得した後に他者が持つ権利、コードに対して実行できる操作、禁止されている操作について説明します。
一般的なプロトコルは次のとおりです。 - MIT:ユーザーがプロジェクトのコピーに著作権表示とライセンス表示を含める限り、ユーザーはコードに対して何でもすることができ、開発者は一切の責任を負う必要はありません。
- Apache: MIT に似ていますが、貢献者がユーザーに特許ライセンスを提供するための条件も含まれています。
- GPL:プロジェクト コードを変更したユーザーは、ソース コードまたはバイナリ コードを再配布するときに、その変更を公開する必要があります。
フィールドは次のように宣言できます。 7. サードパーティの構成package.json ファイルには、 Babel 、 ESLint などのコマンド固有の構成も格納できます。それぞれに、 eslintConfig 、 babel などの固有のプロパティがあります。 これらはコマンド固有であり、使用方法については対応するコマンド/プロジェクトのドキュメントに記載されています。よく使用されるサードパーティの構成項目をいくつか見てみましょう。
1. タイピングTypings フィールドは、TypeScript エントリ ファイルを指定するために使用されます。
"タイピング": "types/index.d.ts",
このフィールドの機能はmain 機能と同じです。 2. eslint設定eslint の設定は、別の設定ファイル.eslintrc.json に記述することも、 package.json ファイルのeslintConfig 設定項目に記述することもできます。
"eslintConfig": {
「ルート」:真、
"env": {
"ノード": 真
},
「拡張」: [
「プラグイン:vue/必須」、
「eslint:推奨」
]、
「ルール」: {},
"パーサーオプション": {
"パーサー": "babel-eslint"
},
}
3. バベルBabel は、Babel のコンパイル構成を指定するために使用されます。コードは次のとおりです。
「バベル」:{
"プリセット": ["@babel/preset-env"],
「プラグイン」: [...]
}
4. 解凍このフィールドを使用して、 npm 上のすべてのファイルに対して CDN サービスを有効にします。CND サービスは unpkg によって提供されます。 5. lintステージlint-staged 、Git ステージング ファイルに対してlinters 実行するツールです。設定後、ファイルが変更されるたびにすべてのファイルに対して lint チェックを実行できます。通常はgitHooks と組み合わせて使用されます。
「lintステージング」: {
"*.js": [
"eslint --fix",
「git 追加」
]
}
lint-staged を使用する場合、各コードの送信では現在変更されているファイルのみがチェックされます。
6. gitフックgitHooks 、コミット前に ESlint チェックを実行するためのフックを定義するために使用されます。 lint コマンドを実行すると、一時保存領域内のファイルが自動的に修復されます。修復されたファイルはステージング領域に保存されないため、 git add コマンドを使用して修復されたファイルをステージング領域に再度追加する必要があります。 pre-commit コマンドを実行した後、エラーがなければ、 git commit コマンドが実行されます。
"gitフック": {
「事前コミット」: 「lint ステージング」
}
ここでは、上記のlint-staged と連携してコードをチェックします。 7. ブラウザリストbrowserslist フィールドは、サポートされているブラウザとバージョンを指定するために使用されます。これは、 Babel 、 Autoprefixer 、およびその他のツールによって、必要なpolyfill とfallback ターゲットブラウザに追加するために使用されます。たとえば、上記の例ではこのフィールドの値は次のようになります。
「ブラウザリスト」: {
"生産": [
">0.2%",
「死んでない」
「op_mini すべてではない」
]、
"発達": [
「最後の 1 つの Chrome バージョン」、
「最新の Firefox バージョン 1」、
「最後の 1 つの Safari バージョン」
]
}
ここでは、運用環境と開発環境のブラウザ要件を定義するオブジェクトが指定されます。上記のdevelopment では、開発環境でサポートされているchrome 、 Firefox 、 safari ブラウザの最新バージョンを指定しています。このプロパティは、異なるフロントエンド ツール間でターゲット ブラウザーとノード バージョンを共有するためBabel 構成ツールです。Babel やAutoprefixer など、多くのフロントエンド ツールで使用されます。 フロントエンド JavaScript バトラー package.json に関するこの記事はこれで終わりです。フロントエンド バトラー package.json に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:- 最も完全なpackage.json分析
- nodejs の package.json に複数の起動コマンドを設定する方法
- package.jsonの各プロパティの詳細な説明
- package.json のホームページ属性の詳細な説明
- npm スクリプトと package.json の詳細な説明
- Node.js の package.json の依存関係を最新バージョンに更新する方法
- nodejs npm package.json 中国語ドキュメント
|