Denoでnpm用フレームワークを含めたモノレポを作るのは渋いぞ!個人開発集会での発表をレポート

詳細情報

日時 2025年01月30日 22:00 - 22:30
テーマ Denoでnpm用フレームワークを含めたモノレポを作るのは渋い
発表者 neverClear
集会名 個人開発集会
発表資料 リンク

2025年1月30日、VRChatの「個人開発集会」で、neverClearさんが「Denoでnpm用フレームワークを含めたモノレポを作るのは渋い」というテーマで発表しました!その内容を、参加者の視点でレポートします!

今回の発表では、Denoを使って、npm用フレームワークを含むモノレポ(Monorepo)を構築する際の課題や、その解決方法について、neverClearさんが自身の経験を交えながら解説してくれました。

Denoは、JavaScript/TypeScriptのランタイムとして、そのシンプルさやセキュリティの高さから注目を集めていますよね。でも、npmパッケージとの連携には、まだ課題があることも事実。

そんな中で、neverClearさんがどのようにしてモノレポ構築を実現したのか、その過程はまさに「渋い」の一言!

Denoとnpmパッケージ、共存への道のり

Denoでnpmパッケージを使うときの課題

Denoは、その設計思想から、npmパッケージをそのまま使うことはできません。

npm: スキームを使って、npmパッケージをインポートすることはできますが、型定義ファイル(.d.ts)の問題や、ビルド時の挙動の違いなど、さまざまな課題に直面することになります。

neverClearさんの発表では、特に型定義ファイルの扱いに苦労したとのこと。

たとえば、npmパッケージの型定義ファイルが、別のnpmパッケージに依存している場合、Denoではうまく解決できないことがあるそうです。

また、Denoは、node_modules を使わないため、npmパッケージをどのように管理するかも、考える必要があります。

課題を乗り越えるための工夫

neverClearさんは、これらの課題を解決するために、いくつかの工夫を凝らしていました。

まず、型定義ファイルの問題については、npm: スキーマでパッケージを直接参照したり、型定義ファイルをローカルにコピーして、そこから参照したりと、いろいろ試行錯誤をしてみたそうです。

また、npmパッケージの管理については、deno.jsonimports フィールドを使って、依存関係を明示的に記述することで、解決を図っていました。

モノレポ構築で立ちはだかる壁

ビルドと依存関係の複雑さ

モノレポでは、複数のパッケージを一つのリポジトリで管理するため、ビルドや依存関係の管理が複雑になりがちです。

neverClearさんの発表では、@manypkg/cli を使って、パッケージ間の依存関係をチェックすることで、この問題を解決していました。

また、ビルドツールとしては、Denoの標準機能である deno task を活用していました。

Denoの「渋さ」との格闘

Denoは、まだ発展途上の技術です。そのため、npmパッケージとの連携においては、予期せぬ問題が発生することもあります。

neverClearさんは、これらの問題に直面するたびに、Denoのドキュメントや、コミュニティの情報などを参考にしながら、一つずつ解決していったそうです。

その過程は、まさに「渋い」の一言!

それでもDenoでモノレポを作る理由

シンプルさとセキュリティ

Denoの魅力は、なんといっても、そのシンプルさとセキュリティの高さです。

設定ファイルが少なく、依存関係も明確なため、プロジェクトの見通しが良くなります。

また、パーミッションを明示的に指定する必要があるため、意図しないコードの実行を防ぐことができます。

将来への期待

Denoは、まだ発展途上の技術ですが、その将来性には大きな期待が寄せられています。

npmパッケージとの互換性も、今後改善されていくことが期待されます。

neverClearさんは、Denoの将来性に期待を込めて、あえて「渋い」道を選んだとのことでした。

まとめ

今回の発表では、Denoを使って、npm用フレームワークを含むモノレポを構築する際の課題や、その解決方法について、neverClearさんの経験をもとに学ぶことができました。

Denoとnpmパッケージの共存は、まだ「渋い」道ですが、その先には、よりシンプルで安全な開発環境が待っているのかもしれません。

neverClearさんの挑戦は、Denoの可能性を広げる、大きな一歩となるでしょう。

今後のDenoの進化、そしてneverClearさんのさらなる挑戦に期待大です!

スライドのダウンロードはこちら

個人開発集会の他の発表もチェック!

VRChatのポスター管理をブラウザから!「SyncFrame」でイベント運営がもっと楽になる!

AIソフトウェアエンジニア「Devin」をのりちゃんが実際に使ってみた体験談

VRChat個人開発集会レポート!HIDEさんの「uvでPython開発環境構築」が超役立つ!

VRの新しいテキスト入力手法を考えてみた話 - VRChatでのタイピングに革命を!

ブラウザで動くローカルLLM「Gemini Nano」のデモサイトを作ってみた!のりちゃんさんの発表内容を解説

いいプロンプトの極意はチーム開発スキルにアリ!~LLMとの対話で広がる個人開発の可能性~

個人開発集会の開催情報・参加方法

個人開発集会のポスター

個人開発集会

開催日: 2025年01月30日

開催時間: 21:00 - 22:00

開催曜日: 木曜日

開催周期: 隔週(グループA)

個人開発にまつわる話でワイワイする集会です。 個人開発をやっている方も初めてみたい方も大歓迎! 企画・技術・マーケティング・保守・運用など 技術的なことに限らない幅広い分野を想定しています。 個人開発に興味がある方はぜひ遊びに来てください!

個人開発にまつわる話でワイワイする集会です。 個人開発をやっている方も初めてみたい方も大歓迎! 企画・技術・マーケティング・保守・運用など 技術的なことに限らない幅広い分野を想定しています。 個人開発に興味がある方はぜひ遊びに来てください!