Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8825

npm installでインストールできるモジュールを作るまでの流れについて

$
0
0

はじめに

npmでインストール可能なモジュール(パッケージ)のなるべく最小構成の作成方法が中々見つからなかったので、簡単にまとめました。

環境

  • Node.js 12.16
  • npm 6.14

ファイル構成

npmパッケージには、1つのディレクトリ内にモジュールのソースコードセット、package.json、エントリーポイントとなるjsファイル(今回はindex.jsとする)の3種類が必要となる。

今回の例としては、ディレクトリをmodtest、モジュールのソースコードをサブディレクトリlibの配下に2種類(hello.js, hello2.js)、index.jsとします。

  • modtest/
    • lib/
      • hello.js
      • hello2.js
    • index.js
    • package.json

モジュールの作成

1. ディレクトリ作成

空のディレクトリ(今回はmodtest)を作成しておきます。

2. package.jsonの作成

空のディレクトリへ移動し、npm initコマンドを実行します。

npm init

対話式にモジュール名、バージョン番号等のパッケージ情報を尋ねられるため、必要事項を入力すると、同ディレクトリに下記のようなpackage.jsonが作成されます。

package.json
{"name":"modtest","version":"1.0.0","description":"The test modules for npm.","main":"index.js","scripts":{"test":"echo \"Error: no test specified\"&& exit 1"},"author":"aqmr-kino","license":"ISC"}

3. ライブラリモジュールの作成

3.1 モジュール作成

モジュール化する対象のコードを作成します。
今回はサンプルとして関数1個(hello)とクラス1個(Hello)を作成します。

各ファイルの最後にmodule.exportsを使用して外部からアクセス可能とする関数を設定します。(exportした関数やクラスのみがpublicな関数やクラスとして公開されます)

lib/hello.js
functionhello(){return"hello"}module.exports={hello,}
lib/hello2.js
classHello{constructor(v){this.value=v;}hello(){return("hello, "+this.value);}}module.exports={Hello,}

3.2 メインモジュール作成

パッケージのメインファイルとなるjsファイルを作成します。
今回は、index.jsという名前で作成していますが、package.jsonmainに記載するファイル名を変更することで変更可能です。
モジュールを利用するファイルからrequireで読み込んだ場合に実行されるスクリプトで、基本的にはライブラリモジュールを読み込んで、任意の名前で再度exportしておきます。(このファイルでexportされた識別子がモジュールを利用するコードから呼び出すことができる要素となります)

index.js
consthello=require('./lib/hello.js')consthello2=require('./lib/hello2.js')module.exports={hello,hello2,}

モジュールのインストール

上記の各種ファイルセットを作成後、npm installコマンドでpackage.jsonがあるディレクトリを指定することで、パッケージとしてインストールすることが可能です。

ローカルのディレクトリから

npm installコマンドで作成したモジュールセットの格納されたディレクトリを指定することでモジュールとしてインストールすることができます。

npm install ./modtest

GitHubから

上記のファイル構成をGithubのリポジトリとしては登録しておけば、npm installでコマンドでgit+リポジトリのURLを指定することによりインストールすることもできる。

npm install git+https://github.com/user_name/repository_name.git

インストールしたモジュールの使い方

npmでパッケージとしてインストールしたモジュールは一般的なnpmパッケージと同様にrequireで読み込み、パッケージ内でexportされている各関数やクラスを利用することができる。

main.js
constmodtest=require('modtest')// helloメソッド(hello.js内)console.log(modtest.hello.hello())// hello2.Heloクラス(hello2.js内)varh=newmodtest.hello2.Hello("test")console.log(h.hello())

Viewing all articles
Browse latest Browse all 8825

Trending Articles