6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

npmに公開する前に、パッケージの動作確認をする方法

Last updated at Posted at 2021-02-08

はじめに

npm publish で公開する前にパッケージを確認する方法として、以下の 2 つがありそうです。

  • npm link で、開発中にパッケージの動作確認を行う
  • npm pack で、npm publishで公開される内容を事前に確認する

それぞれ見ていきます。

環境

npm: 6.14.10

開発中にパッケージの動作確認を行う

npm-link を使うと、ローカルの別のパッケージから、確認したいパッケージを呼び出すことができます。

npm link (in package dir)
npm link [<@scope>/][@]

alias: npm ln

引用: npm-link

npm-link は次の 2 ステップで行います。

1. 参照したいパッケージで、npm linkを実行する

参照したいパッケージでnpm linkを実行すると、グローバルなnode_modulesに、コマンドを実行したパッケージへのシンボリックリンクを作成します。

(グローバルなnode_modulesは、Linux だと$(npm prefix -g)/lib/node_modules/$PACKAGE_NAMEになります)

(Windows だと$(npm prefix -g)\node_modules\$PACKAGE_NAMEになりそうです)

また、パッケージ内の bin を $(npm prefix -g)/bin/$PACKAGE_NAME にリンクします。

参考: npm-prefix

2. 1.のパッケージを参照したい場所でnpm link $PACKAGE_NAMEを実行する

npm link $PACKAGE_NAMEを実行すると、現在のフォルダのnode_modulesにグローバルなnode_modules/$PACKAGE_NAMEへのシンボリックリンクを作成します。

$PACKAGE_NAME は、ディレクトリ名ではなく、package.json から取得されることに注意します。

パッケージ名の前にスコープを付けることができます。スコープは@scopename/で定義します。

例えば以下のような 2 つのパッケージがあるとします。

root
 ├─ some_module
 |  └─ node_modules
 └─ my_app
    └─ node_modules

my_appからsome_modulesを参照したい場合、以下のように実行します。

$ npm prefix -g # 確認用
# /usr
$ cd /root/some_module
$ npm link
# /usr/lib/node_modules/some_module -> /root/some_module
$ cd /root/my_app
$ npm link some_module
# /root/my_app/node_modules/some_module -> /usr/lib/node_modules/some_module -> /root/some_module

2 つのステップを一緒に行うこともできます。

$ cd /root/my_app
$ npm link ../some_module
# /root/my_app/node_modules/some_module -> /usr/lib/node_modules/some_module -> /root/some_module

この場合は、パッケージ名ではなく、ディレクトリ名を指定します。

npm publishで公開される内容を事前に確認する

npm-packを使うと、npm publishで公開するものと同様のものが.tgz形式で出力されます。
これにより、公開前に出荷物を確できます。
(梱包される内容がログに吐き出されますので、分かりやすいです)

$ npm pack
# npm notice
# npm notice 📦  my_app@0.1.3
# npm notice === Tarball Contents ===
# npm notice 4.6kB dist/my-component.esm.js
# npm notice 5.2kB dist/my-component.min.js
# npm notice 5.5kB dist/my-component.umd.js
# npm notice 1.5kB package.json
# npm notice 6.2kB dist/my-component.esm.js.map
# npm notice 6.2kB dist/my-component.min.js.map
# npm notice 6.2kB dist/my-component.umd.js.map
# npm notice 310B  README.md
# npm notice === Tarball Details ===
# npm notice name:          my_app
# npm notice version:       0.1.3
# npm notice filename:      my_app-0.1.3.tgz
# npm notice package size:  5.2 kB
# npm notice unpacked size: 35.7 kB
# npm notice shasum:        d19a748b51e603fc385ec11134837428de10a0cc
# npm notice integrity:     sha512-8rxQlISLyS9zq[...]X9LBuapw7koLA==
# npm notice total files:   8
# npm notice
# my_app-0.1.3.tgz
6
0
0

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
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?