RORK LABEN
NATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びていますNATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びています
記事一覧/開発ツール
開発ツール/2026-06-17上級

Rork が生成したアプリの依存関係を棚卸しする — 供給網リスクを増やさない監査の習慣

画面四枚の小さな Rork アプリでも、間接依存は 900 を超えます。脆弱性が出たときどのアプリが影響するか分からなくなる前に、npm ls・npm audit・overrides・depcheck を使った棚卸しの習慣を、複数アプリ運用の視点で整理します。

Rork525依存関係3セキュリティ13npm2長期運用11

プレミアム記事

エクスポートした Rork プロジェクトの node_modules を、何気なく数えてみたことがあります。画面が四枚ほどの小さなアプリでした。それでも、インストールされていたパッケージはおよそ 900 を超えていました。自分が名前を知っていたのは、そのうち十数個だけです。

直接の依頼は「写真を選んで保存するだけ」の機能でした。Rork はその実現に必要なライブラリを選び、それぞれが内部で頼る別のライブラリを連れてきて、最終的に 900 という数字になっていたわけです。これは Rork が悪いのではなく、現代の JavaScript 開発では当たり前の光景です。問題は、その当たり前を個人開発で何本も抱えたときに起きます。

私は壁紙や癒し系のアプリを複数本、並行して運用しています。それぞれが数百の間接依存を抱えていると、ある日どこかのライブラリに脆弱性が見つかったとき、自分のどのアプリが影響を受けるのかが、一目では分からなくなります。AI が依存を選んでくれるからこそ、選ばれた中身を人間が棚卸しする習慣が要ります。

以下では、Rork が生成したアプリの依存関係を、供給網のリスクを増やさずに保つための監査手順を、実際に流しているコマンドとあわせて書いていきます。

まず「自分が何に頼っているか」を可視化する

棚卸しの第一歩は、直接依存と間接依存を分けて眺めることです。package.json に並ぶのは直接依存だけで、本当のリスクはその下にぶら下がる間接依存に潜みます。小さなアプリでも、間接依存が全体の 90% 近くを占めることは珍しくありません。

直接依存の一覧は、次のコマンドで深さを一段に絞って確認します。

# 直接依存だけを一覧表示(間接依存は畳む)
npm ls --depth=0
 
# 間接依存まで含めた総数を数える
npm ls --all --parseable | wc -l
 
# 特定のライブラリが「なぜ」入っているのかを逆引きする
npm why <パッケージ>

最後の npm why が特に効きます。見覚えのないパッケージを見つけたとき、それがどの直接依存から連れてこられたのかを遡れます。「この画像ライブラリのために、古い圧縮ライブラリが芋づる式に入っていた」といった発見は、ここから生まれます。

脆弱性は週に一度、機械的に洗う

可視化の次は、既知の脆弱性の確認です。これは判断を挟まず、毎週きまった曜日に機械的に流すのが私のやり方です。

# 既知の脆弱性を深刻度つきで一覧
npm audit
 
# 破壊的変更を伴わない範囲だけ自動修正
npm audit fix
 
# 深刻度が high 以上だけを CI で弾く(戻り値で判定)
npm audit --audit-level=high

注意したいのは、npm audit fix を勢いで流さないことです。--force をつけると、互換性を壊すメジャー更新まで一気に当たり、本番環境のビルドが通らなくなる落とし穴があります。私は high 以上だけを対象に、一つずつ更新の影響を確かめてから取り込みます。

複数アプリを持っていると、この週次の洗い出しを一本のスクリプトにまとめておくと楽です。

#!/usr/bin/env bash
# audit-all.sh — 全アプリの脆弱性をまとめて確認する
set -e
for app in ~/apps/*/; do
  echo "===== $(basename "$app") ====="
  ( cd "$app" && npm audit --audit-level=high || echo "要対応の脆弱性あり" )
done

これを週末に一度回すだけで、どのアプリに手当てが必要かが一覧で分かります。脆弱性への対処を「思い出したとき」から「毎週の点検」へ移すだけで、見落としは大きく減ります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
npm ls と npm why で直接依存と間接依存を分けて可視化し、見覚えのないパッケージの侵入経路を逆引きする手順
週次の npm audit を全アプリへ一括実行するスクリプトと、--force による本番ビルド破壊を避ける深刻度フィルタの運用
overrides による間接依存のバージョン狙い撃ち、depcheck での未使用依存の削除、ネイティブ SDK を別枠で管理する理由
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-03-30
Rork アプリの Expo 依存関係エラー解決ガイド
Rork で生成したアプリの Expo 依存関係エラーを症状別に解決する実践的なガイドです。バージョン競合からインストール失敗まで、よくあるエラーの原因と対処法をマスターしましょう。
開発ツール2026-07-30
Renovate が触ってよい依存と、触ってはいけない依存 — Expo SDK 57 の123パッケージを機械的に切り分ける
Rork 生成アプリに依存の自動更新を入れると、Expo が版を管理している123パッケージまで巻き込まれます。2026年7月30日時点の実測では、うち6件が npm の最新版へメジャー更新される差でした。除外リストを手で書かず SDK から機械生成する手順をまとめます。
開発ツール2026-07-27
最低サポート iOS をいつ上げるか — 利用率ではなく、コードに残った分岐の数で決める
最低サポート OS の引き上げを利用率で判断すると、毎年同じ結論になって先送りが続きます。OS 分岐に注記を付けて棚卸しし、引き上げ先ごとに消せる分岐を数えるスクリプトと、引き上げ後に見る指標をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →