ホームページ ウェブフロントエンド jsチュートリアル Node.js パッケージのプロジェクト ディレクトリと NPM パッケージ manager_node.js の使用方法の詳細な説明

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

May 16, 2016 pm 03:15 PM
javascript node node.js npm バッグ

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

上記の知識を理解したら、プロジェクト ディレクトリを完全に計画できるようになりました。コマンド ライン プログラムの作成を例に挙げます。通常、コマンド ライン モードと 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 @可以撤銷發佈自己發佈過的某個版本程式碼。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

プログラミング効率の向上: Golang パッケージの使用を最適化します。 プログラミング効率の向上: Golang パッケージの使用を最適化します。 Jan 16, 2024 am 10:46 AM

人工知能とクラウド コンピューティングが進歩し続けるにつれて、ソフトウェア開発は今日のビジネス界にとって不可欠な部分となっています。 Golang は効率的でスケーラブルなプログラミング言語として、ソフトウェア開発者の間でますます支持されています。ただし、Golang を使用する場合でも、開発者はプログラムの実行効率の基準を常に守る必要があります。この記事では、Golang パッケージの使用を最適化することでプログラミングの効率を向上させる方法に焦点を当てます。そして、読者がこれをよりよく理解できるようにコード例を提供します。

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

See all articles