概要
タイトルの通りですが、自作したnpm packageをローカル環境でテストする方法です。
基本方針
npm link
を使う方法が一番楽なのでその方法で説明します。
npm link
の基本的な使い方は下記の記事が参考になりました。
テスト対象のnpm package
動作確認用のプロジェクト
テスト対象のnpm package直下に移動し npm link
を実行する
npm link
を実行します。
「動作確認用のプロジェクト上」で npm link パッケージ名
を実行する
npm link @nekonomokochan/aws-lambda-node-logger
のように実行します。
すると下記のようにシンボリックリンクが貼られている事が確認出来るかと思います。

「動作確認用のプロジェクト」上で動作確認を行う
動作確認を行います。
詳細な手順はpackage毎に異なると思うので、省略させて頂きます。
後片付けその1(「動作確認用のプロジェクト」から npm unlink
を実行する)
動作確認が済んだら、linkの解除を行っておきます。
「動作確認用のプロジェクト」直下に移動し以下のコマンドを実行します。
npm unlink @nekonomokochan/aws-lambda-node-logger
後片付けその2(「テスト対象のnpm package」を npm unlink
する)
「テスト対象のnpm package」直下に移動し npm unlink
を実行します。
修正版のpackageをnpmに公開する
修正が問題なければ修正版をnpmに公開しましょう。
詳細な手順は割愛しますが、初めてのnpm パッケージ公開 という記事が非常に丁寧に解説されており参考になるのでこちらで紹介させて頂きます。
私の場合は scoped package(package名の先頭にユーザー名が入る方式)を利用しているので npm publish --access=public
としています。
(参考)npmで名前空間を持ったモジュールを公開する方法(scoped modules)
これは余談ですが、package名はグローバルで一意になる必要があるので、自作packageを公開する時はscoped packageを使って名前の衝突を避けるのが無難かと思います。
この記事の内容は以上になります。
最後まで読んで頂きありがとうございます。