npmパッケージを作成しインターネットに公開、”npm install”や”npm install –global”でダウンロード、インストール可能にする方法のガイドです。
npmパッケージの公開前に、node.jsプログラムが完成していること、package.jsonを作成していることを確認してください。
最初に、npmにログインします。
npm login
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