Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メンテされなくなったCLIをTypeScriptで開発しなおした話
Search
Hiroshi TANABE
April 21, 2025
Technology
0
4
メンテされなくなったCLIをTypeScriptで開発しなおした話
kansai.ts #10 でお話しさせていただいた際のスライドです。
-
https://kansaits.connpass.com/event/348764/
Hiroshi TANABE
April 21, 2025
Tweet
Share
More Decks by Hiroshi TANABE
See All by Hiroshi TANABE
Lambda Web Adapter使ってNext.jsのアプリをホストしてみた! / Tried hosting Next.js app with Lambda Web Adapter
htnabe
0
76
Openapi-fetch とOpenapi-typescriptを使ってみた! I tried openapi-fetch and openapi-typescript!
htnabe
0
11
Other Decks in Technology
See All in Technology
Findy Team+ QAチーム これからのチャレンジ!
findy_eventslides
0
290
Wasmのエコシステムを使った ツール作成方法
askua
0
190
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
80k
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
330
JAZUG 15周年記念 × JAT「AI Agent開発者必見:"今"のOracle技術で拡張するAzure × OCIの共存アーキテクチャ」
shisyu_gaku
1
160
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.8k
RDS の負荷が高い場合に AWS で取りうる具体策 N 連発/a-series-of-specific-countermeasures-available-on-aws-when-rds-is-under-high-load
emiki
3
2.1k
HR Force における DWH の併用事例 ~ サービス基盤としての BigQuery / 分析基盤としての Snowflake ~@Cross Data Platforms Meetup #2「BigQueryと愉快な仲間たち」
ryo_suzuki
0
220
AWS IoT 超入門 2025
hattori
0
340
プレーリーカードを活用しよう❗❗デジタル名刺交換からはじまるイベント会場交流のススメ
tsukaman
0
170
Railsの話をしよう
yahonda
0
150
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
8.8k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
66k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
8
910
Visualization
eitanlees
149
16k
Statistics for Hackers
jakevdp
799
220k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Building Adaptive Systems
keathley
44
2.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
How STYLIGHT went responsive
nonsquared
100
5.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Transcript
メンテされなくなった CLIをTypeScript で開発しなおした話 © Nabe-cyan(t-pot.me)
• オフィシャル・プライベート共に、今まで基本的に1人での開発がメインだった ので、我流な部分が含まれていると思います • トーク中でも様々なアドバイス・質問はウェルカムです! はじめに
概要 • AlgoliaというWebサイト内検索のSaaSがある • Algolia上にデータをアップロードする際に atomic-algolia という、JSベースのCLIライ ブラリがあったのですが、メンテナンスされなくなっていた • 今回はTS
+ citty, unbuildでこのライブラリを作り直した ◦ algolia-uploader • 技術選定、困った話、今も困っている話 etc. を話したい
Algoliaとは…? • Algoliaについて知っている or 使ったことのある方 ✋ • SaaS型全文検索サービス • サーバーやインフラの構築・運用が不要で、クラウド上で提供されるため、導
入や運用が非常に簡単 • リアルタイム検索と高パフォーマンス • 例:私の個人ブログのサイト内検索機能
メンテされなくなった atomic-algolia • 私も過去使っていた ライブラリ • 必要最低限の機能に絞って 開発されており、非常に素晴 らしい •
5年前の更新を最後に残念な がらストップ (貶める意図は一切ないです)
atomic-algoliaのユースケース https://upload.wikimedia.org/wikipedia/commons/6/69/Algolia-logo.svg JSONファイルの例: { "objectID": "prod_001", "name": "Wireless Headphones", "brand":
"SoundMaster", "price": 129.99, "inStock": true, "rating": 4.5, "description": "Premium sound quality with noise cancellation.", "imageUrl": "https://example.com/images/headphones.jpg" }, • ローカルにあるJSONファイルを Algoliaに登録する • 登録・削除・更新処理は公式の search clientを利用 npm run atomic-algolia
技術選定 • まず新しめのCLI開発事例を探す ◦ これを読んでUnJSが熱いっぽいという事が分かった • フレームワークの学習にそんなに時間を掛けたくない ☞ドキュメントを読めば9割は作り方が分かるフレームワークにしたい ほな citty,
unbuild, jiti の組み合わせで作ってみるか!
詳細 • 言語: TypeScript • パッケージマネージャー: yarn v4 • CLI
Builder: citty • Bundler: unbuild • デバッグ支援(生のTSをそのまま実行できる): jiti • 環境変数の処理: dotenvx • テスト: vitest
困ったこと • `yarn v4`での`Zero-Installs`関連の設定に手間取った • `yarn v4`とVSCode, `devcontainer`の組み合わせで開発してみたところエ ディターごとに追加の設定が必要という落とし穴にはまった(この対応が必 須かどうかまだ微妙に分かっていない)
◦ 別のパッケージマネージャーを使った方が良かった気がしている • 最初に`lodash`を使っていたが、CommonJSでしか動かないことを知らな かった ◦ 結局は es-toolkit を使った
困っていること • 一人で開発しているので、実際にはまだ困っていない • 今のところデバッグする際に実際のAlgoliaのアカウントを使ってデ バッグ用のアプリケーションを用意する必要があり正直手間。。。(´; ω;`)
まとめ・蛇足 • ちょっと学習すれば直観的で楽しく開発できる(特に cittyが優秀) • yarn v4 をがっつり触ったけど、パッケージマネージャとして気軽にはおす すめできないかも ◦
有識者のアドバイス・コメント求む! • 自分でOSSライブラリを開発・保有していると将来的なキャリアでも良いこ とあるかもね! 知らんけど