Node.jsのモジュールのメカニズム

公共の数のオリジナル記事:猿周Xiansenプログラム。このプラットフォームは、私の記事のように、私はマイクロチャンネル公衆番号への関心を歓迎し、定期的に更新されていません。
ファイル

実際には、主にブラウザのフロントエンドに広く適用されるJavaScriptの開発、インチ 実用的なアプリケーションでは、JavaScript APIのパフォーマンスは、ホスト環境をサポートするの能力レベルに主に依存し、ほとんどの早い段階で、唯一のBOM、DOMのサポートに、HTML5の登場で、ブラウザでより多くの、より強力があるためJavaScriptのためのAPIを呼び出しますが、これらは前に発生した、バックJavaScriptの規範は、はるかに遅れています。Javaのクラスファイルを持っている、Phthonインポートメカニズムを持っている、PHPが含まれ、必要があるが、道のスクリプトタグによってJavaScriptコードの導入は、当社のポストメンテナンスがより困難、無秩序表示されます。JavaScriptのために、4の大きな欠点が残っています:

  •     1.没有模块系统。
  •     2.标准库比较少。
  •     3.没有标准,统一的接口。
  •     4.缺乏包管理系统。

Node.jsのは、モジュラーシステムを使用することは非常に簡単に実装し、パッケージ仕様のためのノードのパッケージ管理システムNPM良いサポートは、Nodeアプリケーション開発プロセスでは、より効果的にします。ノードモジュールパッケージを目的とし、達成この記事では、説明します。

ノードモジュールの仕様

実際には、定義モジュールは、モジュール参照モジュールモジュールの定義と三つの部分の識別に分け、非常に簡単です。

1)モジュールリファレンス

存在は、この方法は、モジュールAPI本文脈を導入するために、識別モジュールを受け入れ、()メソッドのNode.jsを必要とします。

2)モジュール定義

私たちが使用することができますので、自然にモジュールにつながることができ、モジュールを導入するために()が必要です。Node.jsのは、現在のモジュールは、オブジェクトをエクスポートし、そして唯一の出口が導出されるエクスポート導出するために使用される方法と変数を提供します。各モジュールは、それ自体を表すモジュールオブジェクトは、実際にはエクスポートプロパティモジュールのモジュールがあります。Node.jsのでは、ファイルが実際にモジュールである結合特性は、メソッドやプロパティにエクスポートすることができますように、我々は、オブジェクトの輸出にメソッドとプロパティをエクスポートする必要があります。

さらに別のモジュールにおいて、モジュールは、必要()を介して導入することができる)(和の方法を用いて導出することができます。

3)識別モジュール

実際には、識別モジュールがパラメータの()メソッドを必要に渡され、モジュール識別子文字列が一致するキャメルケースでなければならない./,../またはパスの初めに、吸気モジュール識別モジュールは、サフィックスの.js省略してもよいです。

開発者は、変数の汚染の問題を考慮する必要がないように、モジュールの利点は、特定のスコープ内で定義された特定のメソッドと変数です。

Node.jsのモジュールを達成するために

Node.jsのでは、以前はFSファイルモジュールは、データベースモジュールデータベースは、自分のファイルのモジュールを書くために、開発者のカテゴリがあると述べた上のようなコアモジュールは、Node.jsのを提供しているそのうちの一つのモジュールの3種類が存在しています、そのようなtest.jsモジュールの一例であり、第三のカテゴリーは、所望のパッケージMySQLのジャーに、例えば、一般的にファイルまたはパッケージの形で、特別なファイル・モジュールで、カスタムモジュール、です。

Node.jsの中のモジュールの導入は、我々は3手順を実行する必要があります。

(1)パス解析

ファイル・モジュールのために、モジュールが正確なファイルが指定された位置を特定導入され、パス解析は、コアモジュールのローディング速度の後、多くの時間では省略されてもよいです。

それはこれまでのターゲット・モジュールを見つけるまで、カスタムモジュールは、一つ一つは、プロジェクトのルートディレクトリからのパスを比較しています。したがって、カスタムモジュールパスをより深く、より時間のかかる経路解析ので、自己定義モジュールのローディング速度が最も遅いです。

(2)文書のローカリゼーション

実際には、識別モジュールは、サフィックスを含まなくてもよいとしている、Node.jsのように、ファイルはターンサプリメントの.js、.json、.nodeファイルの拡張子に配置されたとき、およびNode.jsのはシングルスレッドであるため、その後、ファイルを検索しますモジュールサフィックスの導入が.jsonまたは.nodeファイルで導入されたとき、あなたは接尾辞を追加することができますので、もしそうジャムは、ときにファイルの位置を発生し、検索速度を向上させることができます。

(3)コンパイルして実行

あなたが特定のファイルを定義した後、Node.jsのモジュールオブジェクトを作成し、モジュールおよびコンパイラに導入されました。インデックスファイルのパスは、セカンダリモジュールの性能を向上させるために導入されたキャッシュオブジェクト、上にキャッシュされるように、各モジュールは、その成功をまとめたものです。

コアモジュールに導入された場合、そのようバイナリファイルにコンパイルされたソースコードのコンパイル中のNode.jsコアモジュールは、直接、その後、メモリ内に直接ロードされ、ファイルロケータコンパイラの実装では、2つのステップをスキップすることができ、そしてコア優先決意モジュールはコアモジュールのロード速度が最速で、パス解析です。

ファイルのモジュールは、動的に、実行時にパス解析をロードされ、3つの手順が実行されているファイル位置付けをコンパイルすることは省略することができないので、ゆっくりとコアモジュールよりロード。

セカンダリモジュールのパフォーマンス・オーバーヘッドを減らすために、キャッシュされたモジュールの導入によるNode.jsのは、二次ロード・モジュールにすべての使用キャッシュ優先モードを導入しました。モジュールのコアモジュールに優先してキャッシュファイルを確認してください。

NPMパッケージ管理ツール

ノードモジュールだけ言ったが、私たちは、モジュールを参照することができますが、モジュールとモジュールの間でまだ国にハッシングされ、互いに直接参照することはできませんが。ノードパッケージ管理ツールのNPMモジュールは、お互いにリンクされます。実際には、パッケージがさらに組織化されたJavaScriptコードは、モジュールごとに基づいています。

実際には、NPMは、一般的に、パッケージのルートディレクトリにあるパッケージ記述ファイルpackage.jsonを、持っていますが、すべてはNPMが密接にパッケージファイルの記述にリンクされ動作します。いくつかは、一緒にノード環境としてインストールされるデフォルトのパッケージ管理ツールとしてNPMの前で話しました。

NPMの共通機能

NPMヘルプノードは、サードパーティのモジュール、インストールや依存性の解放を完了しました。NPM、ノードおよびサードパーティのモジュール、徐々により多くの強力な間の良好な生態系の形成の存在のため。そして、おおよそ次のいくつかのNPMの共通コマンドに

  • NPMは、NPMの現在のバージョンを表示する--version

  • ビューNPMは説明するのに役立ち

  • 具体的な手順を表示するには、NPM helpコマンド

  • コマンドを実行すると、ブラウザでのコマンドに対応するドキュメントを開きます

  • NPMインストールの依存関係、--saveデフォルトパラメータ、すなわち、暗黙のうちにpackage.jsonに追加をインストール

  • コマンドを実行し、NPMは、カレントディレクトリにnode_modulesディレクトリを作成し、ディレクトリをnode_modules対応する依存関係を作成し、ディレクトリを抽出するためにパッケージを依存しています。

  • NPMは、このディレクトリの初期化ファイルpackage.jsonで生成はinit

  • 海抜アンインストール package.jsonから除去アンロード依存性、--saveデフォルトパラメータ、すなわち、

  • NPM LSは、現在の依存関係のディレクトリを表示します

  • NPMのルートは、グローバルインストールアドレスを表示-g

  • 海抜手紙 現在のバージョン依存を見ます

NPM既存の問題

NPMプラットフォームでは、誰もがパッケージは、品質を保証する方法はありません、とのNode.jsはサーバー上で実行され、パッケージを共有することができ、我々は、セキュリティ上の問題を考慮する必要があります。だから、良いモジュールは複数のモジュールを満たす必要があります。

  1. 良いテストを持っています

  2. 良いドキュメント

  3. 良いテストカバレッジ

  4. コードの仕様は良い持っています

ここで今日の内容は、実際には、この記事では、コードを書く必要ありませんが、モジュールの観点からのNode.jsを理解するために、仕様によってモジュールをNode.jsのは、JavaScriptのための構造的欠陥を作るないように、とNPMによってプロジェクトの開発問題に依存して統合管理パッケージは、効果的に対処されています。

我々はNode.jsのを理解していき観点から、次の非同期プログラミング、次さようなら!
プログラムAPE周Xiansen:いいえ、私は個人的に国民に注意を歓迎します
ファイル

おすすめ

転載: www.cnblogs.com/niyueling/p/11562990.html