- 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 Overflownpmパッケージの公開の仕方は以上ですが、以下に例として僕の作成した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
- Name
- Shou Arisaka / 有坂 翔
- 情報技術者 / Z世代プログラマー / 米大学院にてデータサイエンスを学ぶ
- ITプロフェッショナルとして活動しています。React.js等のモダンなウェブ制作・アプリ開発を得意としており、Java・Python・Rust等のプログラミング言語を用いたソフトウェア開発全般を行っています。
- Github 🐙StackOverflow 🔥Qiita 📝
- TechFreeTools 🔧About.me 👤