Node.js パッケージのプロジェクト ディレクトリと NPM パッケージ manager_node.js の使用方法の詳細な説明

WBOY
リリース: 2016-05-16 15:15:19
オリジナル
1536 人が閲覧しました

プロジェクトディレクトリ

上記の知識を理解したら、プロジェクト ディレクトリを完全に計画できるようになりました。コマンド ライン プログラムの作成を例に挙げます。通常、コマンド ライン モードと API モードの両方が提供され、コードの作成にはサードパーティのパッケージが使用されます。完全なプログラムには、コードに加えて、独自のドキュメントとテスト ケースも必要です。したがって、標準のプロジェクト ディレクトリは次のようになります。

- /home/user/workspace/node-echo/  # 工程目录
  - bin/             # 存放命令行相关代码
    node-echo
  + doc/             # 存放文档
  - lib/             # 存放API相关代码
    echo.js
  - node_modules/         # 存放三方包
    + argv/
  + tests/            # 存放测试用例
  package.json          # 元数据文件
  README.md            # 说明文件
ログイン後にコピー

一部のファイルの内容は次のとおりです:

/* bin/node-echo */
var argv = require('argv'),
  echo = require('../lib/echo');
console.log(echo(argv.join(' ')));

/* lib/echo.js */
module.exports = function (message) {
  return message;
};

/* package.json */
{
  "name": "node-echo",
  "main": "./lib/echo.js"
}

ログイン後にコピー

上記の例では、さまざまな種類のファイルがカテゴリに保存され、モジュールはサードパーティのパッケージ名を使用して、node_moudles ディレクトリを通じて直接ロードされます。また、package.jsonを定義すると、node-echoディレクトリもパッケージとして利用できます。

NPM

NPM は、NodeJS とともにインストールされるパッケージ管理ツールで、NodeJS コードのデプロイメントにおける多くの問題を解決できます。

  • ユーザーがローカルで使用するために、他のユーザーが作成したサードパーティ パッケージを NPM サーバーからダウンロードできるようにします。
  • ユーザーは、ローカルで使用するために、他の人が作成したコマンド ライン プログラムを NPM サーバーからダウンロードしてインストールできます。
  • ユーザーが作成したパッケージまたはコマンド ライン プログラムを、他のユーザーが使用できるように NPM サーバーにアップロードできるようにします。

ご覧のとおり、NPM は NodeJS 開発者とユーザーが相互に通信できる NodeJS エコシステムを確立しました。以下では、これら 3 つのシナリオで NPM を使用する方法について説明します。

サードパーティのパッケージをダウンロード
サードパーティのパッケージを使用する必要がある場合は、まずどのパッケージが利用可能であるかを知る必要があります。 npmjs.org にはパッケージ名に基づいて検索するための検索ボックスが用意されていますが、使用したいサードパーティ パッケージの名前がわからない場合は、Baidu にお問い合わせください。パッケージ名 (上の例の argv など) がわかったら、プロジェクト ディレクトリでターミナルを開き、次のコマンドを使用してサードパーティ パッケージをダウンロードできます。

$ npm install argv
...
argv@0.0.2 node_modules\argv
ログイン後にコピー

ダウンロード後、argv パッケージはプロジェクト ディレクトリの下の node_modules ディレクトリに配置されるため、サードパーティ パッケージのパスを指定せずに、コード内で require('argv') のみを必要とします。

上記のコマンドは、デフォルトでサードパーティ パッケージの最新バージョンをダウンロードします。特定のバージョンをダウンロードする場合は、たとえば、バージョン 0.0 をダウンロードできます。次のコマンドを使用して argv の 1 を取得します。

$ npm install argv@0.0.1
...
argv@0.0.1 node_modules\argv
ログイン後にコピー

多数のサードパーティ パッケージを使用する場合、ターミナルで 1 つのコマンドを使用して各パッケージをインストールするのは非常に面倒です。したがって、NPM は package.json のフィールドを拡張して、サードパーティのパッケージの依存関係をその中で宣言できるようにしました。したがって、上記の例の package.json は次のように書き換えることができます:

{
  "name": "node-echo",
  "main": "./lib/echo.js",
  "dependencies": {
    "argv": "0.0.2"
  }
}
ログイン後にコピー

このように処理した後、npm install コマンドを使用して、プロジェクト ディレクトリにサードパーティ パッケージをバッチ インストールできます。さらに重要なことは、将来、node-echo も NPM サーバーにアップロードされ、他の人がこのパッケージをダウンロードすると、NPM は、パッケージ内で宣言されているサードパーティ パッケージの依存関係に基づいて、さらに依存するサードパーティ パッケージを自動的にダウンロードします。たとえば、npm install node-echo コマンドを使用すると、NPM は次のディレクトリ構造を自動的に作成します。

- project/
  - node_modules/
    - node-echo/
      - node_modules/
        + argv/
      ...
  ...
ログイン後にコピー

この方法では、ユーザーは直接使用するサードパーティのパッケージについてのみ注意する必要があり、すべてのパッケージの依存関係を自分で解決する必要はありません。

コマンドラインプログラムをインストールします
NPM サービスからコマンド ライン プログラムをダウンロードしてインストールする方法は、サードパーティ パッケージの方法と似ています。たとえば、上記の例の node-echo はコマンド ラインの使用方法を提供します。node-echo が関連する package.json フィールドを構成している限り、ユーザーは次のコマンドを使用するだけでプログラムをインストールできます。

$ npm install node-echo -g
ログイン後にコピー

パラメータの -g はグローバル インストールを示すため、node-echo はデフォルトで次の場所にインストールされ、NPM は Linux システムで必要なソフト リンク ファイル、または Windows システムで必要な .cmd ファイルを自動的に作成します。

- /usr/local/        # Linux系统下
  - lib/node_modules/
    + node-echo/
    ...
  - bin/
    node-echo
    ...
  ...

- %APPDATA%\npm\      # Windows系统下
  - node_modules\
    + node-echo\
    ...
  node-echo.cmd
  ...

ログイン後にコピー

郵便番号
NPM を使用して初めてコードを公開する前に、アカウントを登録する必要があります。ターミナルで npm adduser を実行し、プロンプトに従います。アカウントを設定したら、package.json ファイルを編集し、NPM に必要なフィールドを追加する必要があります。上記のノードエコーの例に従って、package.json に必要なフィールドは次のとおりです。

{
  "name": "node-echo",      # 包名,在NPM服务器上须要保持唯一
  "version": "1.0.0",      # 当前版本号
  "dependencies": {       # 三方包依赖,需要指定包名和版本号
    "argv": "0.0.2"
   },
  "main": "./lib/echo.js",    # 入口模块位置
  "bin" : {
    "node-echo": "./bin/node-echo"   # 命令行程序名和主模块位置
  }
}
ログイン後にコピー

之後,我們就可以在 package.json 所在目錄下執行 npm publish 發布程式碼了。

版本號碼
使用 NPM 下載和發佈程式碼時都會接觸到版本號。 NPM 使用語意版本號來管理程式碼,這裡簡單介紹一下。

語意版本號分為 X.Y.Z 三位,分別代表主版本號、次版本號和補丁版本號。當程式碼變更時,版本號碼會依照下列原則更新。

+ 如果只是修復bug,需要更新Z位。

+ 如果是新增了功能,但是向下相容,需要更新Y位元。

+ 如果有大變動,向下不相容,需要更新X位元。
版本號碼有了這個保證後,在申明三方包依賴時,除了可依賴一個固定版本號外,還可依賴某個範圍的版本號。例如"argv": "0.0.x"表示依賴 0.0.x 系列的最新版 argv。 NPM 支援的所有版本號範圍指定方式可以查看官方文件。

靈機一點
除了本章介紹的部分外,NPM 還提供了許多功能,package.json 裡也有很多它有用的欄位。除了可以在 npmjs.org/doc/ 查看官方文件外,這裡再介紹一些 NPM 常用指令。

NPM 提供了許多指令,例如 install 和 publish,使用 npm help 可查看所有指令。

  • 使用 npm help 可查看某條指令的詳細協助,例如 npm help install。
  • 在 package.json 所在目錄下使用npm install . -g可先在本機安裝目前命令列程序,可用於發布前的本機測試。
  • 使用npm update 可以把目前目錄下 node_modules 子目錄裡邊的對應模組更新至最新版本。
  • 使用npm update -g可以把全域安裝的對應命令列程式更新至最新版。
  • 使用npm cache clear可以清空 NPM 本機緩存,用於對付使用相同版本號發布新版本程式碼的人。
  • 使用npm unpublish @可以撤銷發佈自己發佈過的某個版本程式碼。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!