2009 年の JSConf カンファレンスで、Ryan Dahl という名前の若いプログラマーは、彼が取り組んでいるプロジェクト、つまり、一連のイベント ループと低 IO アプリケーション プログラミング インターフェイスを提供する、Google V8 エンジンに基づく JavaScript 実行プラットフォームを人々に披露しました ( API)。他のサーバーサイド プラットフォームとは異なり、JavaScript は本質的にイベント駆動型の IO であり、このプロジェクトはイベント駆動型アプリケーションの作成の複雑さを大幅に軽減するため、信じられないほどのスピードで急速に人気が高まり、実際のプロジェクトに適用されました。 (ジャック: この翻訳はあまり信頼できません。原文: このプロジェクトは、すべての I/O プリミティブがイベント駆動型であり、それを回避する方法がなかった他のサーバーサイド JavaScript プラットフォームとは異なります。)
このプロジェクトは Node.js という名前で、開発者はこれを Node と呼ぶことに慣れています。Node は、同時実行性の高いアプリケーションを構築するための純粋にイベント駆動型のノンブロッキング ツールキットを提供します。
注: Node を使用すると、高速でスケーラブルなネットワーク サービスを簡単に構築できます。
Ryan Dahl によって紹介されて以来、Node は業界で広く注目を集めてきました。彼らは、高速でスケーラブルなネットワーク サービスを展開するために Node の使用を開始しました。ノートはとても魅力的です。
一方で、JavaScript は地球上で最も広く使用されているプログラミング言語であり、ほとんどの Web プログラマーはブラウザ側で JavaScript を使用しており、サーバー側はその自然な拡張です。
一方、Node は小柄でかわいいため、Node のコア関数セットは非常に小さく、既存の API は非常に洗練されており、開発者の複雑さが最小限に抑えられています。より複雑なアプリケーションを構築したい場合は、好みのサードパーティ モジュールを選択してインストールするだけです。
Node が非常に魅力的な理由はもう 1 つあります。ダウンロード、インストール、実行は数分で完了します。
通常は、公式 Web サイト (http://nodejs.org) の手順に従って Node をインストールします。Windows、Linux、Macintosh、Solaris をサポートしています。
Windows にノードをインストール
Node はバージョン 0.6.0 以降の Windows をサポートします。Windows に Node をインストールするには、Http://nodejs.org/#download から node-v*.msi をダウンロードしてダブルクリックします。実行すると、図 1-1 のようなセキュリティ ダイアログ ボックスが表示される場合があります。
図 1-1
「実行」ボタンをクリックすると、ダウンロードが完了すると、操作を実行するかどうかを確認する別のセキュリティダイアログボックス (図 1-2) が表示されます。
図 1-2
同意する場合は、ノードのインストール ウィザードが表示されます (図 1-3)。[次へ] をクリックすると、ノードのインストールがすぐに開始されます。図 1-4 を参照
図 1-3
図 1-4
Mac OS X でのインストール
Mac OS X を使用している場合は、インストール ウィザードを使用して Node をインストールできます。まず、http://nodejs.org/#download から node-v*.pkg をダウンロードします。実行すると、インストール ウィザードの最初のダイアログ ボックスが表示されます。図 1-5
を参照してください。図 1-5
「続行」をクリックしてインストールすると、ウィザードでシステム ユーザーのパスワードの入力を求められます。しばらくすると、インストールが再び開始されます。図 1-6 を参照
図 1-6
ソースコードからインストール
UNIX システムを使用している場合は、ソース コードをコンパイルすることでインストールできます。まず、インストールする Node のバージョンを選択し、対応するソース コードをダウンロードしてビルドし、Node をインストールして実行する必要があります。
注: Node はいくつかのサードパーティ コード ライブラリに依存していますが、幸いなことに、ソースからビルドする場合は、それらのほとんどが既に Node 配布パッケージに含まれています。
1.python (バージョン 2.4 以降) - Node とともにリリースされたビルド ツールを実行するには、Python 環境が必要です
2.libssl-dev - SSL/TLS 暗号化を使用する場合は、これをインストールする必要があります。libssl は、Linux および UNIX システムで使用されるクラス ライブラリであり、通常はシステムのパッケージ マネージャーを使用してインストールできます。 libssl は Mac OS X にプリインストールされているため、Mac OS X システムを使用している場合は、通常、libssl をインストールする必要はありません。
ノードのバージョンを選択
通常、公式 Web サイト nodejs.org からダウンロードできる Node のバージョンは 2 つあります: 安定バージョンと最新バージョンです。
Node の場合、バージョン番号の最小桁はこのバージョンの安定性を表し、安定したバージョンでは偶数 (0.2、0.4、0.6 など) が使用され、不安定なバージョンでは奇数 (0.1、0.3、0.5、0.7) が使用されます。 。
非安定版は機能的に不安定であるだけでなく、後続のバージョンで API が変更される可能性があります。安定版でリリースされた API は変更されません。各安定版ブランチの新しいパッチにはバグ修正だけでなく、非安定版の API の変更も含まれています。
最新の不安定なバージョンで新機能をテストする場合を除き、最新の安定したバージョンを選択する必要があります。不安定なリリースは、Node コア チームが新機能をテストするための戦場のようなものです。
製品で Node を使用することに成功しているプロジェクトや企業は増えていますが (公式 Web サイトのホームページに記載されています)、もちろん、不安定なバージョンから安定したバージョンへの API の変更を許容することを学ぶ必要があるかもしれません。これは新しいテクノロジーを学ぶための代償です。
ノードのソース コードをダウンロード
ダウンロードするバージョンがわかりました。UNIX を使用している場合は、公式 Web サイト http://nodejs.org にアクセスして、対応する tar パッケージを見つけて、ダウンロード リンクをコピーします。システムに Wget がすでにインストールされている可能性があります。つまり、シェル コマンド
を使用してダウンロードできます。wget がインストールされていない場合は、curl を使用する必要がある場合があります:
これら 2 つのツールがインストールされていない場合は、ブラウザやローカル ネットワークなど、他の方法で tar パッケージをローカル ディレクトリにダウンロードする必要があります。
(この本の例では、執筆時点での最新の安定バージョン 0.6.12 を使用しています)
ノードの構築
ソース コードを取得したので、それを使用して Node 実行可能ファイルをビルドできます。まず、前にダウンロードした tarball パッケージを解凍する必要があります:
次に、ソース コード ディレクトリを入力します:
ノードのインストール
ビルドが完了したら、次のコマンドを使用して Node をインストールします:
権限の問題が発生した場合は、コマンドの前に sudo を追加し、root ユーザーとして実行します。
これで、Node を実行できるようになります。最初に Node の実行可能ファイルを呼び出すだけで、Node のコマンドライン インターフェイス (CLI: コマンド ライン インターフェイス) を体験できます。
Node パッケージ マネージャーの準備と使用
これまでのところ、Node 自体の言語機能とコア機能のみを使用できます。このため、ほとんどのプログラミング プラットフォームには、サードパーティ モジュールをダウンロード、インストール、管理するためのシステムが用意されています ( NPM: ノード パッケージ マネージャー)
NPM は、サードパーティのパッケージを保存するためのコード ベース、ローカルにインストールされたパッケージを管理するメカニズム、およびパッケージの依存関係を定義するための標準の 3 つの部分で構成されます。 NPM は、すべてのユーザーが公開したすべてのパッケージを含むパブリック レジストリ サービスを提供し、これらのパッケージをダウンロード、インストール、管理するためのコマンド ライン ツールを提供します。 Node のパッケージ形式標準に従って、アプリケーションが依存するパッケージまたは他のサードパーティ パッケージを作成できます。
Node の使用を開始するために NPM を知る必要はありませんが、Node 自体はいくつかの低レベル API しか提供していないため、サードパーティ パッケージを使用する場合は NPM を学ぶ必要があります。開発の複雑さのため、自分で何かをコーディングする必要はありません。 NPM を使用すると、サンドボックスでモジュールをダウンロードして使用できるため、グローバル パッケージ環境を汚染することを心配することなく、興味のあるものを試すことができます。
NPM と Node は、以前は個別にインストールする必要がありました。バージョン 0.6.0 以降、NPM は Node インストール パッケージに含まれています。
NPM を使用してパッケージをインストール、アップグレード、アンインストールします
NPM は非常に強力で、さまざまな方法で使用できます。そのコード ベースは、http://search.npmjs.org からアクセスできます。 Node オープン ソース モジュールの作成者は、モジュールを NPM に公開でき、他の作成者は、パッケージ インストールの説明にあるモジュール名を使用してモジュールをダウンロードしてインストールできます。
コンテンツのこの部分には、パッケージのインストールと削除のための一般的な操作がいくつか含まれています。これらを理解していれば、独自のアプリケーションが依存するサードパーティ パッケージの管理を開始するのに十分です。ただし、最初にこれらのコマンドについて理解する必要があります。 「グローバル」モードと「ローカル」モード、およびそれらが依存関係とモジュール検索にどのように影響するかについて説明します。
NPM モジュールのグローバル モードとローカル モード
NPM は、グローバルとローカルの 2 つの主なモードで動作します。これら 2 つのモードは、パッケージが保存されるディレクトリ構造と、Node がパッケージをロードする順序に影響します。
ローカル モードは、NPM のデフォルトの動作モードです。このモードでは、NPM は作業ディレクトリ内でのみ動作し、特定のノード プログラムでモジュールをインストールしてテストすることができます。コンピュータ上の他のノード プログラムには影響しません。
グローバル モードは、アプリケーションによって直接使用されないコマンド ライン ツールなど、多くのプログラムで使用され、常にグローバルに読み込まれる共通モジュールに適しています。
モジュールをどのモードでインストールすればよいかわからない場合は、ローカル モードを使用する必要があります。モジュール作成者がモジュールをグローバルにインストールする必要がある場合、通常はインストール手順にその旨を示します。
グローバルモード
グローバル モードで Node をインストールするときにデフォルトのディレクトリを使用すると、NPM はパッケージを /usr/local/lib/node_modules にインストールします。次のコマンドを実行すると、NPM は sax という名前の最新バージョンを検索してダウンロードし、/usr/local/lib/node_modules/sax ディレクトリにインストールします。
デフォルトのモードはローカル モードであるため、グローバル モードを有効にするには、NPM コマンドの後に -g フラグを追加する必要があります。
ローカルモード
ローカル モードは、ノード パッケージの依存関係メカニズムのデフォルトの推奨モードです。このモードでは、NPM によってインストールされたものはすべて現在の作業ディレクトリ (ルート ディレクトリも例外ではありません) にあり、グローバル設定には影響しません。このメカニズムにより、グローバル モジュール スペースの汚染を心配することなく、アプリケーションの依存モジュールとそのバージョンを 1 つずつ設定できます。これは、同じモジュールの異なるバージョンに依存する 2 つのアプリケーションを競合させることなく存在できることを意味します。
このモードでは、NPM は現在の作業ディレクトリ内の node_modules ディレクトリを使用してモジュールを保存します。たとえば、現在の作業ディレクトリが /home/user/apps/my_app の場合、NPM は /home/user/apps/my_app を使用します。 /node_modules はすべてのローカル モジュールを保存します。これは、コード内でモジュール名を使用してモジュールを参照する場合、Node はまずローカルの node_modules ディレクトリを検索し、見つからない場合は、ローカル モジュールの優先順位が常に高いことを意味します。グローバルモジュールのこと。
モジュールをインストールします
次のコマンドを使用して、モジュールの最新バージョンをインストールします:
たとえば、sax という名前のモジュールの最新バージョンをダウンロードしてインストールするには、まずアプリケーションのルート ディレクトリを現在のディレクトリに設定してから、次のように入力する必要があります。
次のコマンドを使用して、特定のバージョンのインストールを選択することもできます:
モジュールのアンインストール
次のコマンドを使用してローカル モジュールをアンインストールします:
次のコマンドを使用してローカル モジュールを更新します:
実行可能ファイルを使用する
モジュールには 1 つ以上の実行可能ファイルを含めることができます。デフォルトのディレクトリ設定を使用してグローバル モジュールをインストールする場合、NPM は実行可能ファイルを /usr/local/bin ディレクトリにインストールします。これは通常、ディレクトリの一部にも設定されます。システムの PATH 環境変数。このモジュールをローカルにインストールすると、NPM はすべての実行可能ファイルを ./node_modules/.bin ディレクトリに配置します。
依存関係の処理
NPM は、必要なモジュール パッケージをインストールするだけでなく、これらのモジュールが依存する他のモジュールもインストールします。たとえば、モジュール A をインストールする必要があり、A がモジュール B と C に依存している場合、A をインストールすると、次のようになります。 B と C も ./node_modules/A/node_modules ディレクトリにインストールされます。たとえば、次のコマンドを使用して nano というモジュールをローカルにインストールします。
これは、nano モジュールがアンダースコアとリクエスト モジュールに依存していることを示し、インストールされているバージョンも示します。ここで ./node_modules/nano/node_modules ディレクトリを確認すると、次の 2 つのモジュールがインストールされていることがわかります:
package.json ファイルを使用して依存関係を定義します
アプリケーションの作成を開始するときに、アプリケーションのルート ディレクトリに package.json ファイルを作成して、アプリケーションの名前、作成者、コード ライブラリのアドレス、連絡先情報などのアプリケーションのメタデータを定義できます。プログラムが依存する外部モジュールもこのファイルで指定されます。プログラムを NPM に公開する予定がない場合は、このファイルを作成する必要はありません。ただし、プログラムがプライベートであっても、このファイルはアプリケーションの依存関係を NPM に伝えることができます。 。 (翻訳者注: たとえば、プロジェクトのソース コードを開発環境から運用環境にコピーする場合、npm install を呼び出すことで、すべての依存パッケージを一度にインストールできます。npm は、依存関係を通じて依存モジュールのダウンロードとインストールを自動的に完了します。 package.json で指定します。いちいち行う必要はありません。詳細は後ほど紹介します)
package.json は一連の属性を含む JSON 形式のファイルですが、プログラムの依存関係を示すだけの場合は、依存関係属性は 1 つだけ使用されます。たとえば、MyApp というアプリケーションは、sax、nano、および request モジュールに依存しています。次のような package.json を作成するだけです。
"名前" : "MyApp",
"バージョン" : "1.0.0",
"依存関係" : {
"サックス" : "0.3.x",
"ナノ" : "*",
"リクエスト" : ">0.2.0"
}
}
MyApp アプリケーションを指定しました。これは、sax のバージョン 0.3、nano の任意のバージョン、およびリクエスト モジュールのバージョン 0.2.0 以降に依存します。
注: 名前とバージョンのフィールドを指定すると、NPM が機能しないことがあります。これは、NPM の古いバージョンでのみ発生します。これは、NPM は元々プライベート プログラムではなくパブリック モジュールに使用されていたためです。
次に、アプリケーションのルート ディレクトリで次のコマンドを実行します。
このように、NPM は依存関係とローカルの node_modules ディレクトリを分析し、不足しているモジュールを自動的にダウンロードしてインストールします。
次のコマンドを実行して、すべてのローカル モジュールを、定義された依存関係設定に一致する最新バージョンに更新することもできます。
概要
この章では、Node と Node Package Manager (NPM) をインストールする方法を学習しました。これで、NPM を使用してサードパーティ モジュールをインストール、アンインストール、削除できるようになります。また、NPM を使用してアプリケーションを管理する方法も学習しました。 package.json ファイルとの依存関係。
Node と NPM をインストールしたので、それを試してみることができます。ただし、その前に、次の章で説明する Node とイベント駆動に関するいくつかの関連知識を知っておく必要があります。