モジュール
通常プログラムを書いている時にライブラリや自前のプログラムを読み込んで使用したい時があります。
通常のjavascriptではHTMLファイルに<script>
タグで外部ファイルの読み込みをします。
Node.jsではrequire('モジュール');
という文法で拡張機能を使用できます。
また、fs
やevents
といった標準で用意されているモジュールをコアモジュールと呼びます。
npm
Node.jsにはモジュールをパッケージ管理できるnpmというツールがあります。
これを利用する事によって、サードパーティ製のモジュールも簡単にプロジェクトに組み込む事ができます。
まずプロジェクト用のディレクトリを作成し、その中へ移動します。
$ mkdir moduleTest && cd $_
次にnpmを使って何かモジュールをインストールしてみましょう。
今回は試しにnode-validatorを使用してみます。
このモジュールはリンク先にも書いてある通り、バリデーション(検証)とサニタイズ(無害化)を簡単してくれるモジュールです。
$ npm install validator
それでは早速スクリプトを書いてみましょう。
const validator = require('validator');
console.log(validator.isEmail('[email protected]'));
実行してtrue
と表示されれば成功です。
validator.isEmail()
で文字列がメールアドレスの形式になっているか調べられます。
他にもアルファベットやBase64、数値やISBN番号など様々なバリデーションができるので色々やってみましょう!
モジュールのバージョン指定
プロジェクトによっては旧バージョンのモジュールを使用したい、というようなことがたまに起こります。
そういうときはnpm install
する際にバージョン指定することがきます。
npm install モジュール名@バージョン
で指定きます。
以下はvalidatorでの例です。
$ npm install [email protected]
/ディレクトリパス
└── [email protected]
このようにしてバージョンを指定してインストールすることがきます。
グローバルインストール
モジュールにはローカルインストールとグローバルインストールがあり、先ほどの方法はローカルインストールと言います。
グローバルインストールはコアモジュールのように常にどこでもモジュールが使用できるようにNode.jsのライブラリに保存する方法です。
プロジェクトごとにパッケージを管理するので個人的にはあまり使用しません。
以下のようにしてグローバル領域にインストールできます。
npm install -g モジュール名
保存先はnpm root -g
で確認できます。
package.jsonを扱う
プロジェクトでモジュールのバージョン管理する際に用いられるのがpackage.jsonです。
このファイルに記述されたモジュールをnpm install
するだけで全てインストールする事ができます。
まずプロジェクトのディレクトリに移動して
$ npm init
を実行します。
対話形式でいろいろ尋ねられるので以下のようにします。
name: (sample)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)MIT
するとディレクトリ内にpackage.jsonというファイルができています。
次にモジュールをインストールする際に同時にpackage.jsonに書き込んでみましょう。
npm intall --save validator
このよう--save
オプションをつけることでpackage.jsonに書き込んでくれます。
最後にpackage.jsonに直接書き込んでまとめてインストールしてみましょう。
package.jsonのdependencied内に以下のモジュールを追加します。
"pg": "^5.1.0",
"q": "^1.4.1"
package.jsonは以下のようになるはずです。
{
"name": "sample",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "MIT",
"dependencies": {
"validator": "^5.5.0",
"pg": "^5.1.0",
"q": "^1.4.1"
}
}
そしてターミナルで
npm install
を実行してみましょう。
これでpackage.jsonに記述されたモジュールを全てインストールすることができます。