以下の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/05/03/164133より取得しました。
JSRの紹介
npm
- ES6もTSもない時代に作られたもの
- CommonJSがデフォルト
- TSに関するサポートがない
- npmの開発が低調
JSRの狙い
- ESMとTSを前提としたレジストリを0から設計するといいのでは
JSRの特徴
- TSを直接パブリッシュ出来る
- トランスパイル不要
- d.tsは勝手にJSRが作ってくれる
- モジュール解決はESMだけ
- npmと互換性あり
- JSRパッケージからnpmパッケージが使えるしその逆もOK
- npmのスーパーセット
- 複数ランタイム前提
- サポートするランタイムを指定できる
- ブラウザ/Deno/Node/Bun
- OSS
Deno
- Denoでは今後JSRを推奨
- stdライブラリもJSRに移っている
- urlを直接書くのが受け入れられていなかったので軌道修正
Denoのモジュール解決
目指すところ
- deno.land/xでどうだったか
- 必要なものだけ
- 指定したものだけ入ってくるようになってる
- npmだと依存全部入ってくる
- 並列ダウンロード
- インポートマップを使ったライブラリ作成
- semverの解決
- URL直接指定なので微妙に違うバージョンの重複が起きた
- 内部構造を公開しない
- ファイル構造を変更できるように
- 拡張子も露出させたくないが対応できてなかった
- TSをソースとして使う
- 高速な方チェック
- JSRだとこれらが解決されている
JSRをローカルで動かしてみよう
JSRのローカル起動
- OSSなので手元でビルドして動かせる
- READMEにだいたい書いてある
- フロントエンドを立ち上げるのはcloneして起動するだけで簡単
- バックエンドはrust周りのセットアップもいるので最初はちょっと重い
- DBもローカルで作るのでどんな情報が保存されるか見える
JSRにモジュールを公開するまで/公開してから
パッケージ公開するまで
- Thothという全文検索を作った
- slow typesのエラー対応
パッケージ公開してから
- ドキュメントのサイトを作った
- スコアを上げるためにいろいろ対応した
slow types ってなんだろう?
slow types
- 内容
- 明示的な型宣言がないもの
- 広範囲な推論を必要とするもの
- 全部につけないといけないわけじゃない
- 検出
以上の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/05/03/164133より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14