🏫

ガキでもnpmパッケージは作れる

に公開

こんにちは!!ガキプログラマです!!
npmへのアカウント登録は13歳からですがnpmへ公開しなくともnpmパッケージは作れるという話をしたいと思います。

結論

Gitで公開する

解説

あまり知られていないですがnpmパッケージはGitプロトコルで公開しGitのURIでインストールできます。
例: npm install -D git+https://gitea.last2014.com/last2014/esm-path.git#main
#の後はgit checkoutなどで使うブランチ名やタグ名です。npmに公開されたパッケージで使われる@は使えません。
ただしGitHubやgitlab.comは13歳未満が利用できないためGiteaやGitLabをセルフホストできるインフラつよつよガキプログラマである必要があります。

実践

ちょうどESMで__dirname__filenameを取得できるパッケージを作っていたのでそのパッケージで実践してみます。

前提

  • Gitのサーバー・リポジトリがある
  • npm・Node.js・Gitの使用経験がある

やり方

まず、npm init(pnpmやyarnでも可)をし、パッケージを作成します。この時、package.jsonのprivateはfalseまたはundefinedとしてください。
(~~いい感じに使えるコードを書く~~)
次にpackage.jsonのmainやtypes(TSを使用する場合)を指定します。ここらへんは見たことなくて何回か実践して覚えたので知らないんですが多分npmのドキュメントにあるのと同じです。

ここで、.gitignoreにdist(TS)やnode_modulesを追加しても問題ありません。依存関係はnpm installするときに同時にインストールされます。distに関してはpackage.jsonのscriptsにprepareという項目を追加します。prepareはnpm installする時に実行されるのでtscなどを追加することでdistをGitから除外できます。

終わり

npmパッケージは数か月前から気になっていて自身のGiteaなどで何回か試していたのですが久しぶりにZennでアウトプットしたことでなんとなく覚えられた気がします。

Discussion