Node.js の詳細な紹介 package_node.js

WBOY
リリース: 2016-05-16 16:20:03
オリジナル
1196 人が閲覧しました

Node.js 言語では、パッケージとモジュールの間に本質的な違いはありません。パッケージはモジュールに基づくより深い抽象化であり、発行、更新、依存関係の管理、およびバージョン管理の実行に使用されます。 Node.js は CommonJS 仕様に従ってパッケージ メカニズムを実装しており、npm はパッケージの公開と取得の要件を解決するために開発されました。

Node.js のパッケージは、JSON 形式のパッケージ説明ファイル package.json が含まれるディレクトリです。 Node.js のパッケージは基本的に CommonJS 仕様に準拠しているため、次のような特徴があります。

CommonJS 仕様で定義されたパッケージの機能:

1) 最上位ディレクトリには package.json ファイルが含まれます。 2) bin ディレクトリにはバイナリ ファイルが保存されます。 3) lib ディレクトリには JavaScript ファイルが保存されます。 4) doc ディレクトリにはドキュメントが保存されます。 5) test ディレクトリには単体テストが保存されます。


Node.js モジュールとファイルは、JavaScript ソース ファイルやバイナリ ファイルだけでなく、ディレクトリにも 1 対 1 で対応します。最も単純なパッケージはディレクトリ モジュールです。

Node.js パッケージは通常、モジュールのコレクションであり、モジュールに基づいてより高いレベルの抽象化を提供します。これは、いくつかの固定インターフェイスを提供する関数ライブラリに相当します。
package.json をカスタマイズすることで、より複雑で、より完全で、より準拠性の高いパッケージを作成してリリースできます。

Node.js がパッケージを呼び出すと、最初にパッケージ内の package.json ファイルのメイン フィールドがチェックされ、package.json ファイルのメイン フィールドがそうでない場合は、それがパッケージのインターフェイス モジュールとして使用されます。存在する場合、Node.js はパッケージのインターフェイスとしてindex.js またはindex.node を探します。

package.json ファイルは、パッケージを記述するために CommonJS 仕様で使用されるファイルです。仕様に完全に準拠する package.json ファイルには、次のフィールドが含まれている必要があります。 1) 名前: パッケージ名。パッケージ名は一意であり、小文字、数字、アンダースコアで構成され、スペースを含めることはできません。
2) 説明: パッケージの説明。パッケージの簡単な説明をします。

3) バージョン: バージョン番号。 「セマンティック バージョン識別」仕様を満たすバージョン文字列。

4) キーワード: キーワードの配列。通常は検索に使用されます。

5) メンテナ: メンテナの配列。各要素には、名前、電子メール (オプション)、Web (オプション) フィールドが含まれます。

6) 貢献者: 貢献者の配列。形式はメンテナー配列と同じです。パッケージの作成者は、contributors 配列の最初の要素である必要があります。
7) バグ: バグを送信するアドレス。Web サイトまたは電子メール アドレスにすることができます。
8) ライセンス: ライセンス配列。各要素には、type (ライセンス名) フィールドと url (ライセンス テキストへのアドレス リンク) フィールドが含まれている必要があります。
9) リポジトリ: ウェアハウス ホスティング アドレスの配列。各要素には、type (ウェアハウスの種類、Git など)、url (ウェアハウスのアドレス)、および path (ウェアハウスに対する相対パス、オプション) フィールドが含まれている必要があります。
10) 依存関係: パッケージの依存関係。パッケージ名とバージョン番号で構成される連想配列です。

注: 「セマンティック バージョン識別」仕様は、海外で提案された一連のバージョン命名仕様であり、当初の目的はさまざまなバージョン番号のサイズ比較の問題を解決することであり、現在多くのパッケージ管理システムで採用されています。

以下は、CommonJS 仕様に完全に準拠した package.json の例です。

コードをコピー


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

{
  "名前": "テストパッケージ",
  "description": "CommonJS 用の私のパッケージ。",
  "バージョン": "0.1.0",
  「キーワード」: [
     "テストパッケージ"、
     「リク」
  ]、
  「メンテナー」: [
     {
        "名前": "リク",
        "メール": "liq@hotmail.com",
     }
  ]、
  「貢献者」: [
     {
        "名前": "リク",
        "ウェブ": "http://blog.csdn.net/chszs"
     }
  ]、
  「バグ」: {
     "メール": "liq@hotmail.com",
     "ウェブ": "http://blog.csdn.net/chszs"
  }、
  "ライセンス": [
     {
        "type": "Apache License v2",
        "url": "http://www.apache.org/licenses/apache2.html"
     }
  ]、
  "リポジトリ": [
     {
        "type": "git",
        "url": "http://github.com/chszs/packagetest.git"
     }
  ]、
  「依存関係」: {
     "ウェブキット": "1.2"、
     "SSL": {
        "gnutls": ["1.0", "2.0"],
        "openssl": "0.9.8"
     }
  }
}
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!