search
LoginSignup
11
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

Organization

自作したnpm packageをローカルでテストする方法

概要

タイトルの通りですが、自作したnpm packageをローカル環境でテストする方法です。

基本方針

npm link を使う方法が一番楽なのでその方法で説明します。

npm link の基本的な使い方は下記の記事が参考になりました。

(参考)npm linkの基本的な使い方まとめ

テスト対象のnpm package

aws-lambda-node-logger

動作確認用のプロジェクト

aws-lambda-node-logger-test

テスト対象のnpm package直下に移動し npm link を実行する

npm link を実行します。

「動作確認用のプロジェクト上」で npm link パッケージ名 を実行する

npm link @nekonomokochan/aws-lambda-node-logger のように実行します。

すると下記のようにシンボリックリンクが貼られている事が確認出来るかと思います。

aws-lambda-node-logger-test-node_modules.png

「動作確認用のプロジェクト」上で動作確認を行う

動作確認を行います。
詳細な手順は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を使って名前の衝突を避けるのが無難かと思います。

この記事の内容は以上になります。

最後まで読んで頂きありがとうございます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
11
Help us understand the problem. What are the problem?