JSRでなんかパッケージを公開してみたい
https://gyazo.com/ec06af50d1fd8c5af4bdb2a889bf35ad
日時 2024年5月26日
https://jsr.io/
パッケージマネージャー
公開も楽にできそう
npmとも互換性がある
使用する時は以下を行う
code:shell
# deno
deno add @luca/cases
# npm (use any of npx, yarn dlx, pnpm dlx, or bunx)
npx jsr add @luca/cases
その後ESモジュール形式でインポートして使う
code:TypeScript
import { camelCase } from "@luca/cases";
camelCase("hello world"); // "helloWorld"
jsr:という指定子を利用したインポートもある
これを使うとインストールしないでもライブラリが使える
code:TypeScript
import { camelCase } from "jsr:@luca/cases@^1.0.1";
camelCase("hello world"); // "helloWorld"
公開手順
公開したいファイルの実態を記述する
jsr.jsonかdeno.jsonを用意してメタデータを記述
あとはnpx jsr publishかdeno publish
以下のGitHub Actions経由で公開したいかも
https://jsr.io/docs/publishing-packages#publishing-from-github-actions
とりあえず公開してみる
https://jsr.io/@ryokatsuse/state-kit@0.1.0
めちゃくちゃ簡単にできた
ボタンでポチポチして行って公開するだけだ。
GitHubのリポジトリと連携してCI回せばすぐ公開できるわ。。神・・・
https://gyazo.com/42401805bfdc435e103cfb50aac233be
わーい
ドキュメントの作成
https://jsr.io/docs/writing-docs
シンボルドキュメントとモジュールドキュメントがある
シンボルは普通にJSDocをかく
モジュールは@moduleと書く
ドキュメントに例を加えることもできる
エラーがまとまっている
https://jsr.io/docs/troubleshooting
JSRはdefaultでサイズが 20 MB 未満のpackageしか公開できないっぽい
何故JSRなのか
ESMの登場
JSランタイムはNode.js以外にも様々登場してきたことによりNode.js中心のレジストリの意味はなくなった
Deno,Bun,worked
TSが標準になってきた
https://deno.com/blog/jsr-is-not-another-package-manager
ドキュメントを生成するの以下を読むといい
https://www.sigstore.dev/
スロータイプ
型チェック時に遅い型があったら品質を低下させてしまうもの
https://jsr.io/docs/about-slow-types
上記読んでおくと良さそう
#JSR #シューマツ開発部