1. 概要フロントエンドの作業を開始して以来、各プロジェクトのルート ディレクトリには通常、package.json ファイルがあります。このファイルは、現在のプロジェクトに必要なさまざまなモジュールと、プロジェクトの構成情報 (名前、バージョン、ライセンスなど) を定義します。 npm install コマンドを実行すると、package.json ファイル内の構成、つまり構成プロジェクトに必要な実行環境と開発環境に応じて、必要なモジュールが自動的にダウンロードされます。 たとえば、以下のファイルには単純なプロジェクト名とバージョン番号のみが含まれています。 { 「名前」:「インドン」、 "バージョン" : "1.0.0", } package.json ファイルは、サフィックス .json からわかるように、JSON オブジェクトです。オブジェクトの各メンバーは、現在のプロジェクトの設定です。たとえば、name はプロジェクト名、version はバージョン番号です。 もちろん、多くの人は package.json 構成をあまり気にせず、より多くの依存関係や devDependencies 構成を使用します。 以下は、各フィールドが実際に何を意味するかを詳しく説明した、より完全な package.json ファイルです。 { "名前": "インドン", "バージョン":"0.0.1", 「説明」: 「antd-テーマ」、 "キーワード":["node.js","antd", "テーマ"], 「ホームページ」: 「https://zhiqianduan.com」、 「バグ」:{"url":"http://path/to/bug","email":"[email protected]"}, 「ライセンス」: 「ISC」、 「著者」: 「yindong」、 「貢献者」:[{"名前":"yindong","メールアドレス":"[email protected]"}], "ファイル": "", "メイン": "./dist/default.js", "ビン": "", "男": ""、 "ディレクトリ": "", 「リポジトリ」: { 「タイプ」: 「git」、 "url": "https://path/to/url" }, 「スクリプト」: { "開始": "webpack サーブ --config webpack.config.dev.js --progress" }, "config": { "ポート": "8080" }, 「依存関係」: {}, 「devDependencies」: { "@babel/core": "^7.14.3", "@babel/プリセット環境": "^7.14.4", "@babel/preset-react": "^7.13.13", "バベルローダー": "^8.2.2", "babel-プラグインインポート": "^1.13.3", "グロブ": "^7.1.7", "以下": "^3.9.0", "レスローダー": "^9.0.0", "スタイルローダー": "^2.0.0", "webpack": "^5.38.1", "webpack-cli": "^4.7.0", "webpack-dev-server": "^3.11.2" }, 「ピア依存関係」: { "お茶": "2.x" }, 「バンドルされた依存関係」: [ 「レンダリングされた」、「スーパーストリーム」 ]、 "エンジン": {"ノード": "0.10.x"}, "os" : [ "win32", "darwin", "linux" ], "CPU" : [ "x64", "ia32" ], 「プライベート」:偽、 「公開構成」: {} } 2. 名前フィールドpackage.json ファイルで最も重要なフィールドは、必須の name と version です。名前とバージョンを組み合わせることで、完全に一意であると見なされる識別子が形成されます。パッケージの変更はバージョンの変更と同時に行う必要があります。 3. バージョンフィールドバージョンの一般的な形式は xxx であり、このルールに従う必要があります。 4. 説明フィールドdescription は説明情報を記述するために使用される文字列です。これにより、npm リポジトリを検索するときに、ユーザーがモジュールを見つけやすくなります。 5. キーワードフィールドキーワードは、npm リポジトリで検索するときにモジュールを見つけるのに役立つ文字列の配列です。 6. ホームページフィールドホームページ プロジェクトのホームページ アドレス。 7. バグズフィールドbugs は、問題アドレスまたは電子メール アドレスを使用してプロジェクトの問題を報告するために使用されます。 「バグ」: { 「URL」:「https://github.com/owner/project/issues」、 「メール」: 「[email protected]」 } 8. ライセンスフィールドライセンスは現在のプロジェクトの契約であり、これによりユーザーはモジュールを使用するための権利と、モジュールの使用に関する制限を知ることができます。 9. 著者フィールド 寄稿者フィールド著者は特定の人物であり、貢献者は現在のプロジェクトに貢献する人々のグループを指します。同時に、誰もが物体です。名前フィールドとオプションの URL および電子メール フィールドがあります。 "著者": { 「名前」:「インドン」、 「メール」:「[email protected]」、 「URL」:「https://zhiqianduan.com/」 } 文字列として記述することもできます 「著者」: 「yindong [email protected] (https://zhiqianduan.com/)」 10. ファイルフィールドファイル属性の値は配列で、モジュール下のファイル名またはフォルダ名が含まれます。フォルダ名の場合は、フォルダ内のすべてのファイルも含まれます(ファイルが他の構成によって除外されていない限り)。 11. メインフィールドmain フィールドはロードするエントリ ファイルを指定し、このファイルは require がインポートされるときにロードされます。このフィールドのデフォルト値は、モジュールのルート ディレクトリにある index.js です。 12. ビンフィールドbin 項目は、各内部コマンドに対応する実行可能ファイルの場所を指定するために使用されます。ノード ツールを作成する場合は、必ず bin フィールドを使用します。 「ビン」: { "webpack": "bin/index.js", } webpack コマンドを実行すると、bin/index.js ファイル内のコードが実行されます。 13. マンフィールドman は、現在のモジュールの man ドキュメントの場所を指定するために使用されます。 "男" :[ "./doc/calc.1" ] 14. ディレクトリフィールドディレクトリは、モジュールの構造を記述するいくつかのメソッドを作成し、各ディレクトリの場所をユーザーに伝えます。 15. リポジトリフィールドコード リポジトリ アドレスを指定します。これは、プロジェクトにコードを投稿したい人にとって役立ちます。 「リポジトリ」: { 「タイプ」:「git」、 「URL」: 「https://github.com/npm/npm.git」 } 16. スクリプトフィールドscripts は、スクリプト コマンドを実行するための npm コマンドラインの省略形を指定します。たとえば、start は、npm run start を実行するときに実行されるコマンドを指定します。 「スクリプト」: { 「開始」: 「ノード ./start.js」 } スクリプト フィールドを使用すると、エイリアスとして理解できるシェル コマンドをすばやく実行できます。 「スクリプト」: { 「ビルド」: 「webpack」 } // npm 実行ビルド // npxウェブパック 17. 設定フィールドconfig フィールドは、コマンド ラインに環境変数を追加するために使用されます。 { 「名前」:「インドン」、 「設定」: { 「ポート」: 「8080」 }, 「スクリプト」: {「開始」:「node server.js」} } 次に、server.js スクリプトの config フィールドの値を参照できます。 console.log(process.env.npm_package_config_port); // 8080 ユーザーは npm config set を介してこの値を変更できます。 npm config yindong:port 8000 を設定します 18. 依存関係フィールド、devDependencies フィールド依存関係フィールドはプロジェクトの実行に依存するモジュールを指定し、devDependencies はプロジェクト開発に必要なモジュールを指定します。 それらの値はオブジェクトです。このオブジェクトの各メンバーは、モジュール名と対応するバージョン要件で構成され、依存モジュールとそのバージョン範囲を示します。 依存関係をインストールするときは、--save パラメータを使用してモジュールをdependencies プロパティに書き込み、--save-dev を使用してモジュールをdevDependencies プロパティに書き込みます。 「devDependencies」: { "webpack": "^5.38.1", } オブジェクト内の各項目はキーと値のペアで表され、先頭にモジュール名、末尾に対応するモジュールのバージョン番号が続きます。バージョン番号は、「メジャー バージョン.マイナー バージョン.スモール バージョン」という形式になります。 バージョンノート
19. peerDependencies フィールドモジュールを開発する際に、現在のモジュールと依存モジュールの両方がサードパーティのモジュールに依存し、互換性のない 2 つのバージョンに依存している場合は、問題が発生します。 たとえば、プロジェクトはモジュール A とモジュール B のバージョン 1.0 に依存しており、モジュール A 自体はモジュール B のバージョン 2.0 に依存しています。 最も一般的なシナリオはプラグインです。たとえば、モジュール A はモジュール B のプラグインです。ユーザーがインストールした B モジュールはバージョン 1.0 ですが、A プラグインは B モジュールのバージョン 2.0 でのみ使用できます。このとき、ユーザーが B のバージョン 1.0 のインスタンスを A に渡すと、問題が発生します。したがって、テンプレートをインストールするときに、A と B が一緒にインストールされる場合、B は 2.0 モジュールである必要があることをユーザーに通知するメカニズムが必要です。 peerDependencies フィールドは、プラグインが必要とするメイン ツールのバージョンを指定するために使用されます。 peerDependencies フィールドを通じて制限できます。myless モジュールの使用は、less モジュールの 3.9.x バージョンに依存する必要があります。 { "名前": "マイレス", 「ピア依存関係」: { "以下": "3.9.x" } } npm バージョン 3.0 以降では、peerDependencies はデフォルトでインストールされなくなったことに注意してください。初期化時にデフォルトでは表示されません。 20. bundledDependencies フィールドbundledDependencies は、公開時に一緒にパッケージ化されるモジュールを指定します。 21. オプションの依存関係フィールド依存モジュールを使用でき、モジュールが見つからないか取得できない場合でも npm の実行を継続したい場合は、このモジュール依存関係を optionsDependencies 構成に含めることができます。この構成は依存関係と同じ方法で記述されますが、ここでモジュールのインストールが失敗しても npm install が失敗することはありません。 22. エンジン分野engines フィールドは、Node や npm のバージョン、ブラウザなど、モジュールが実行されるプラットフォームを指定します。 { "エンジン" : { "ノード" : ">=0.10.3 <0.12", "npm" : "~1.0.20" } } 23. OSフィールドモジュールが実行できるオペレーティングシステムを指定できます "os" : [ "darwin", "linux", "win32" ] 24. CPUフィールドモジュールを特定のCPUアーキテクチャでのみ実行するように制限する "CPU" : [ "x64", "ia32" ] 25. プライベートフィールドこのプロパティが true に設定されている場合、npm は公開を拒否します。これは、プライベート モジュールが誤って公開されるのを防ぐためです。 "プライベート": true 26. publishConfig フィールドこの構成はモジュールが公開されたときに有効になり、公開に使用される一連の値を設定するために使用されます。モジュールをデフォルトで最新としてマークしたり、デフォルトでパブリック リポジトリに公開したりしたくない場合は、ここでタグまたはリポジトリ アドレスを設定できます。 通常、モジュールを内部リポジトリなどの特定の npm リポジトリにのみ公開する場合は、publishConfig は private とともに使用されます。 「プライベート」:true、 「公開構成」: { "タグ": "1.0.0", 「レジストリ」: 「https://registry.npmjs.org/」、 「アクセス」:「公開」 } 27. preferGlobalフィールドpreferGlobal の値は、ユーザーがモジュールをグローバル モジュールとしてインストールしない場合 (つまり、-global パラメータを指定しない場合) に警告を表示するかどうかを示すブール値であり、モジュールがグローバル モジュールとしてインストールされることが意図されていることを示します。 「preferGlobal」: false 28. ブラウザフィールドブラウザは、ブラウザで使用されるテンプレートのバージョンを指定します。 Browserify などのブラウザ パッケージング ツールを使用すると、どのファイルをパッケージ化するかを知ることができます。 「ブラウザ」: { "tipso": "./node_modules/tipso/src/tipso.js" }, 参考文献[1] npmパッケージ.json 最も包括的な package.json 解析に関するこの記事はこれで終わりです。より関連性の高い package.json 解析コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: vitrualBox+ubuntu16.04 python3.6 最新チュートリアルと詳細な手順のインストール
>>: MySQLデータベース監視binlogを有効にする手順
目次父から息子へ: 1. 親コンポーネントのサブコンポーネントタグに、サブコンポーネントに渡されるデ...
目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...
Linux grep コマンドLinux の grep コマンドは、ファイル内の条件を満たす文字列を...
この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳...
コマンド: mysqlhotcopyこのコマンドは、ファイルをコピーする前にテーブルをロックし、不完...
この記事では、古典的なスネークゲームを実装するためのJavaScriptの具体的なコードを参考までに...
1. <div></div> と <span></spa...
目次K8Sの高度な機能高度な機能要約するkubectl サービスの問題のトラブルシューティングK8S...
animation-name アニメーション名。複数のアニメーションがバインドされていることを示す...
学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...
メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...
序文MySQL のスリープ システム機能は、実用的な適用シナリオが少なく、通常は実験的なテストに使用...
パッシブチェックパッシブ ヘルス チェックでは、NGINX と NGINX Plus はイベントの発...
目次ルーティングとは純粋コンポーネントの基本的な使用純粋なコンポーネントの使用に関する注意事項ルーテ...
目次1. 問題の説明2. 問題解決1. 仮想マシンシステムのインストール時にネットワークがない場合2...