JP Coders

Published on

npmパッケージを作成し公開するには

npmパッケージを作成しインターネットに公開、"npm install"や"npm install --global"でダウンロード、インストール可能にする方法のガイドです。

npmパッケージの公開前に、node.jsプログラムが完成していること、package.jsonを作成していることを確認してください。

最初に、npmにログインします。

npm login

npmのアカウントを持っていない場合は作成します。以下より作成します。

npm

以下コマンドでカレントディレクトリのプログラムをnpmパッケージとして公開します。

npm publish

npmパッケージが正常に公開されているかどうかを確認するには以下コマンドを使用します。

npm show <package-name>

例として、僕の作成したnpmパッケージでは以下のように表示されます。

$ npm show notification-cli

notification-cli@1.0.4 | BSD-3-Clause | deps: 4 | versions: 5
Minimalistic Command Line Notification Application under 50 Lines
https://github.com/yuis-ice/notification-cli

keywords: notifications, nodejs, cli, reminder, command-line, scheduler, cli-app, command-line-tool, time-management

bin: noc

dist
.tarball: https://registry.npmjs.org/notification-cli/-/notification-cli-1.0.4.tgz
.shasum: 2480a8ea01264fb3ceebe85563c7da7faa572541
.integrity: sha512-rr2nsXMp25wFpVQ..qECk3o5lJQu8lw==     
.unpackedSize: 7.4 kB

dependencies:
commander: ^6.2.1     moment: ^2.29.1       node-notifier: ^9.0.0 node-schedule: ^2.0.0

maintainers:
- yuis-ice <***>

dist-tags:
latest: 1.0.4

published 4 days ago by yuis-ice <***>

(参考)

npm packages not showing up - Google Search node.js - I published one package on npm, but it's not showing in the search list when i am going to search - Stack Overflow

npmパッケージの公開の仕方は以上ですが、以下に例として僕の作成したnpmパッケージのpackage.jsonを置いておきます。以下の使用およびコピーはライセンス下において自由です。参考にしてださい。 また、以下にて、それぞれのプロパティの説明をします。

{
  "name": "notification-cli",
  "version": "1.0.4",
  "description": "Minimalistic Command Line Notification Application under 50 Lines",
  "main": "noc",
  "bin": {
    "noc": "./noc"
  },
  "dependencies": {
    "commander": "^6.2.1",
    "moment": "^2.29.1",
    "node-notifier": "^9.0.0",
    "node-schedule": "^2.0.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "homepage": "https://github.com/yuis-ice/notification-cli",
  "repository": {
    "type": "git",
    "url": "https://github.com/yuis-ice/notification-cli.git"
  },
  "keywords": [
    "notifications",
    "nodejs",
    "cli",
    "reminder",
    "command-line",
    "scheduler",
    "cli-app",
    "command-line-tool",
    "time-management"
  ],
  "author": "*** <***>",
  "license": "BSD-3-Clause"
}

// description

descriptionプロパティはnpmウェブサイト上に表示されます。SEOとして若干の効果があります。時間があるなら付けておきましょう。

// bin

binプロパティはnpmをグローバルパッケージとしてインストールした場合に参照されるデータです。実行ファイルを指定します。 これを指定しないとnpm install --globalのコマンドを実行しパッケージをインストールしてもコマンドが実行できません。(npmグローバルパッケージのパスに通っていないため)

"bin": {
  "noc": "./noc"
},

// homepage // repository // keywords

これらのプロパティはnpmウェブサイト上に表示されます。SEOとして効果があります。 Githubページにリンクソースを送りたい場合は"repository"プロパティを忘れないようにしましょう。 npmウェブサイト上での検索において"keywords"はそれなりのSEO効果があります。

これにより、以下のコマンドにより公開されたnpmパッケージをグローバルにインストールし、コマンドとして実行可能にします。

npm i --global notification-cli

(僕の作成したnpmパッケージ、およびpackage.json: notification-cli)

yuis-ice/notification-cli: Minimalistic Command Line Notification Application under 50 Lines notification-cli/package.json at main · yuis-ice/notification-cli

(その他参考になりそうなnpmパッケージ、およびpackage.json)

tldr-node-client/package.json at master · tldr-pages/tldr-node-client node-sleep/package.json at master · erikdubbelboer/node-sleep
Authors
  • avatar
  • Name
  • 情報技術者 / Z世代プログラマー / 米大学院にてデータサイエンスを学ぶ

  • ITプロフェッショナルとして活動しています。React.js等のモダンなウェブ制作・アプリ開発を得意としており、Java・Python・Rust等のプログラミング言語を用いたソフトウェア開発全般を行っています。

お手伝いできますか? 🤝

他の方法でのご連絡をご希望ですか?
web制作ご依頼受付中

本記事で掲載している情報やコードは執筆時点のものであり、動作を保証するものではありません。 自己責任のもと、プログラムの実行や情報の利用にあたってはご注意ください。


本記事には提携する企業の広告が含まれる場合があります。