npm publishできるかを判定するコマンドラインツール: can-npm-publish
azu/can-npm-publish: A command line tool that check to see if npm publish
is possible.というツールを書きました。
名前の通り指定したパッケージ(pacakge.json
)を見て、そのパッケージのそのバージョンがnpm publish
可能かどうかを判定してくれます。
npm publish
可能かのチェックリスト
具体的には次のすべての条件を満たした時にpublish
が可能と判断します。
- [x] Check that the package’s name is valid
- validate-npm-package-name
- 最近変更されたパッケージ名の命名規則もチェックされます
- The npm Blog — New Package Moniker rules
- [x] Check that the package is not
private:true
- [x] Check that
package@version
is already published in npm registry
たとえば、すでに同じバージョンがpublish済みの場合はexit statusが1
を返します。
# in almin/
$ can-npm-publish --verbose
[email protected] is already published
$ echo $?
1
また、チェックにはnpm view
コマンドを使っていて、pacakge.json
にpublishConfig
が設定されていればprivateのregistryでも動作します。
つかいみち
ものすごいシンプルな使い所だとnpm publish
とcan-npm-publish
を&&
で実行するパターンです。
can-npm-publish && npm publish
もっと具体的にはlernaのようにまとめて、pacakges/*
したのパッケージをpublishしたときに、lerna
は一つでもpublish
に失敗すると途中で止まってしまうので、can-npm-publish
と組み合わせることで、publish可能なものだけをpublishできます。
lerna exec --bail=false -- "can-npm-publish && npm publish"
元々次のIssueのワークアラウンドとして作りました
Install
npmでインストールできます。
npm install can-npm-publish
Usage
Usage
$ can-npm-publish [directory|pacakge.json path]
Options
--verbose show detail of errors
Examples
$ can-npm-publish
$ echo $? # 0 or 1
すべてのチェックが通った場合はexit statusが0
になります。
何かがおかしい場合はexit statusが1
となります。
何がおかしいのかの理由を知りたい場合--verbose
オプションを利用できます。
$ can-npm-publish --verbose
[email protected] is already published
$ echo $?
1
リポジトリ
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。