ホームページ > ウェブフロントエンド > jsチュートリアル > ノードモジュールとnpmパッケージ管理ツールの分析

ノードモジュールとnpmパッケージ管理ツールの分析

小云云
リリース: 2018-01-05 09:50:49
オリジナル
1550 人が閲覧しました

Node.js では、すべての機能がモジュールに分割され、完全なモジュール読み込みメカニズムが提供されるため、アプリケーションをさまざまな部分に分割し、これらの部分を適切に連携して管理できます。さまざまなモジュールにさまざまな再利用可能なコードを記述することで、アプリケーションのコード量が大幅に削減され、アプリケーションの開発効率とアプリケーション コードの可読性が向上します。モジュール読み込みメカニズムを通じて、さまざまなサードパーティ モジュールをアプリケーションに導入できます。この記事では主にnodeモジュールとnpmパッケージ管理ツールを紹介しますが、編集者が非常に優れていると感じたので、参考として共有します。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。

node.js では、サードパーティ Web サイトからさまざまな Node.js パッケージをダウンロードするための npm パッケージ管理ツールが提供されています。

1. モジュール

1.1 モジュールの読み込み

Node.js では、すべての機能が多数のモジュールで構成されており、各モジュールは JavaScript ファイルになります。 Node.js で事前定義されたコア モジュールをロードする場合、必要なのは require('モジュール名') だけです (例: require('http'))。サードパーティのクラス ライブラリをアプリケーションに導入する場合は、このフル パスを指定する必要があります。 require ('./script/foo.js') などのファイル名とファイル名

1.2 モジュールへのアクセス

1.2.1 アクセスするには、exports オブジェクトを使用します

モジュール ファイル または、オブジェクトはモジュール内でのみ有効です。これらの変数、関数、またはオブジェクトを外部モジュールから参照する必要がある場合は、たとえば、次のコードを使用してモジュールを変更する必要があります。

var testVar = "Can you see me now ? ";
var funName = function(name){
  console.log('My name is' + name);
}
exports.testVar = testVar ;
exports.funName = funName ;
ログイン後にコピー

次に、これらの変数、関数、オブジェクトを http.js で使用するには、http.js で次のコードを記述します。

var test1 = require('./testModule.js');
// 通过test1访问testModule.js模块内的testVar变量 和funName函数
console.log(test1.testVar)
test1.funName('Luckfine')
ログイン後にコピー

node この http.js ノードを実行します http.js


結果は以下の通りです


1.2.2 module.exports オブジェクトを使用してアクセスします

これらの変数、関数、またはオブジェクトを外部モジュールから参照する必要がある場合は、exports オブジェクトを使用できます。 module.exports も使用しますが、モジュールのクラスを定義する必要がある場合は、 module.exports のみを使用できます。

たとえば、testModule.js で次のコードを使用して testModule クラスを定義します。

var _name,_age
var name = '',age = 0;
var foo = function(name,age){
  _name = name ; 
  _age = age ;
}
// 获取私有变量_name的变量只
foo.prototype.GetName = function(name){
  return _name;
};
// 设置私有变量_name的变量值
foo.prototype.SetName = function(name){
  _name = name;
}
// 获取私有变量_age的变量只
foo.prototype.GetAge = function(age){
  return _age;
};
// 设置私有变量_name的变量值
foo.prototype.SetAge = function(age){
  _age = age;
}
foo.prototype.name = name;
foo.prototype.age = age;
module.exports = foo;
ログイン後にコピー

このクラスの変数、関数、またはオブジェクトを http.js で使用したい場合は、次のコードを記述できます。 http.js:

var foo = require('./testModule.js');
var myFoo = new foo('Luckfine',18);

console.log('获取修改前的私有变量值')
console.log(myFoo.GetName());
console.log(myFoo.GetAge());

console.log('修改私有变量');
myFoo.SetName('Baby');
myFoo.SetAge(16);

console.log('获取修改后的私有变量值')
console.log(myFoo.GetName());
console.log(myFoo.GetAge());


console.log('获取修改前的公有变量值')
console.log(myFoo.name);
console.log(myFoo.age);

console.log('修改公有变量')
myFoo.name = "Tom";
myFoo.age = 20;

console.log('获取修改后的公有变量值')
console.log(myFoo.name);
console.log(myFoo.age);
ログイン後にコピー

次に、iTerm でノード http.js コマンドを実行すると、実行結果は次のようになります


上記を要約すると、次のようになります:


つまり、2 つのタイプがありますjsファイルとjsファイルの連携 モード:

1) あるjsファイルには、他の人が利用できる関数が用意されています。 関数を公開するだけです。exports.msg=msg;

2) 特定の js ファイルがクラスを記述します。 module.exports = People;

2. npm パッケージ管理

npm は、Node.js に従うパッケージ管理ツールであり、npm を使用してサードパーティをインストールするときに発生する多くの問題を解決できます。ライブラリを作成すると、インストール パッケージは、npm コマンドが実行されるディレクトリの node_modules フォルダーに配置されます。現在のディレクトリに node_modules が存在しない場合は、node_modules ディレクトリが現在のディレクトリに生成され、サードパーティのライブラリが作成されます。 need は、node_modules の真ん中に配置されます。

したがって、インストールするときは、コマンドプロンプトの場所に注意してください。

サードパーティ ライブラリをインストールするコマンド npm install モジュール名。express をインストールする必要がある場合は、コマンド ラインに npm install Express と入力するだけです

1。依存関係パッケージはいつでも更新される可能性があります。常に最新の状態に保ちたい場合、または誰かが特定のバージョンを保持している場合、プロジェクトが大きくなっても、他の人に見せるときに参照するサードパーティのモジュールを再度共有する必要がなくなります。

したがって、package.json を使用して依存パッケージを管理できます。

cmd で、npm init を使用して package.json ファイルを初期化し、質問に答えることで新しい package.json ファイルを生成します。

package.json を生成する目的は、依存関係を誤って失った場合に、直接 npm install する限り、不足している依存関係を package.json にインストールできることです

バージョンの前にバージョン番号が付いています。 package.json の番号 鋭角は修正されたバージョンを示します。つまり、現在インストールされているバージョンは修正されています

たとえば、今すぐ新しいフォルダーを作成しましょう

1。

次に、サードパーティのライブラリ Express をインストールする必要があります。まず、このフォルダーに入り、コマンド ラインを開き、「npm install Express」と入力します。コマンド ラインが完了すると、新しい node_modules ファイルが作成されていることがわかります。フォルダー.フォルダーに必要なライブラリがインストールされています

2. インストール後のフォルダーの内容

次に、パッケージを管理するための package.json が必要です。コマンド ラインの初期化では、コマンド ライン プロンプトに従って質問に答えて package.json

3. package.json を作成します

次に、依存関係、バージョン番号、説明、作成者などをいくつか入力します。プロジェクトの . は package.json を介して管理されます。

4. パッケージ管理

私のパッケージ管理内容は比較的小さいので、通常の状況ではpackage.jaonには次の内容があります

3 .モジュールオブジェクトのプロパティ

これはより深い理解になります。

モジュール ファイル内で、現在のモジュールの次のプロパティにアクセスできます。

module.id: モジュールファイルの絶対パスを表します。

module.filename: 属性値は現在のモジュールのファイル名です。

module.loaded: 属性値が false の場合は、モジュールがロードされていないことを意味します。ロードされたことを意味します。

module.parent: 属性値は現在のモジュールの親モジュール オブジェクト、つまり現在のモジュールを呼び出すモジュール オブジェクトです。

module.children: 属性値はすべてのサブモジュール オブジェクトを格納する配列です。現在のモジュールの、つまり、現在のモジュール内のすべてのモジュール オブジェクト。


関連する推奨事項:


nvm を使用して、さまざまなバージョンのノードと npm を管理する

vue コンポーネントを npm に公開する方法

NPM の使用について

以上がノードモジュールとnpmパッケージ管理ツールの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート