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

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

上記の知識を理解したら、プロジェクト ディレクトリを完全に計画できるようになりました。コマンド ライン プログラムの作成を例に挙げます。通常、コマンド ライン モードと 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 までご連絡ください。
Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール