<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>できない.dev</title>
    <link>https://dekinai.dev</link>
    <atom:link href="https://dekinai.dev/feed.xml" rel="self" type="application/rss+xml" />
    <description>プログラミング・開発時の「○○できない／エラー／動かない」を解決する辞典</description>
    <language>ja</language>
    <lastBuildDate>Sat, 27 Jun 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>TypeScript の as const で型が絞り込めない</title>
      <link>https://dekinai.dev/typescript/as-const-not-narrowing/</link>
      <guid isPermaLink="true">https://dekinai.dev/typescript/as-const-not-narrowing/</guid>
      <description>`as const` はリテラル型と readonly 化を行うが、配置場所を間違えると効かない。配列やタプル全体に付ける必要があり、関数の戻り値で union 化を保ちたいなら戻り値式に付ける。要素単位の as const では狙った narrowing が起きない。</description>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Next.js App Router でサーバーコンポーネントから dynamic ssr:false が使えない</title>
      <link>https://dekinai.dev/nextjs/dynamic-import-ssr-false/</link>
      <guid isPermaLink="true">https://dekinai.dev/nextjs/dynamic-import-ssr-false/</guid>
      <description>App Router のサーバーコンポーネント内で next/dynamic に ssr: false を渡すとビルドエラーになる。ssr: false はクライアントコンポーネントの中でのみ指定でき、用途が SSR off ならクライアントラッパ、遅延ロードだけなら Suspense で分離する。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Node.js で「ERR_UNKNOWN_FILE_EXTENSION: Unknown file extension &quot;.ts&quot;」が解決できない</title>
      <link>https://dekinai.dev/nodejs/err-unknown-file-extension-ts/</link>
      <guid isPermaLink="true">https://dekinai.dev/nodejs/err-unknown-file-extension-ts/</guid>
      <description>古い Node で `.ts` を直接実行すると拡張子を解釈できずこのエラーになる。`tsx` などのランナーで実行するか、型除去が既定の新しい Node（v22.18 / v23.6 以降）にする。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>DOM</title>
      <link>https://dekinai.dev/glossary/dom/</link>
      <guid isPermaLink="true">https://dekinai.dev/glossary/dom/</guid>
      <description>DOM は HTML 文書を要素・属性・テキストのノードからなるツリー構造としてメモリ上に表現する API。JavaScript はこのツリーを通じてページの構造・内容・スタイルを動的に操作する。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>JSX</title>
      <link>https://dekinai.dev/glossary/jsx/</link>
      <guid isPermaLink="true">https://dekinai.dev/glossary/jsx/</guid>
      <description>JSX は JavaScript の構文拡張で、JavaScript ファイル内に HTML に似たマークアップを記述できる。ビルド時にコンパイラが React.createElement 相当の関数呼び出しへ変換する。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>PAT</title>
      <link>https://dekinai.dev/glossary/pat/</link>
      <guid isPermaLink="true">https://dekinai.dev/glossary/pat/</guid>
      <description>PAT は GitHub などでパスワードの代わりに使う個人用アクセストークン。HTTPS 経由の操作や API 認証に使い、付与したスコープ（権限）の範囲でのみ操作できる。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>ReferenceError</title>
      <link>https://dekinai.dev/glossary/reference-error/</link>
      <guid isPermaLink="true">https://dekinai.dev/glossary/reference-error/</guid>
      <description>ReferenceError は、存在しない（まだ初期化されていない）変数を参照したときに JavaScript が投げる例外。多くは 'x is not defined' というメッセージで現れる。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>WSL</title>
      <link>https://dekinai.dev/glossary/wsl/</link>
      <guid isPermaLink="true">https://dekinai.dev/glossary/wsl/</guid>
      <description>WSL は Windows 上で Linux 環境を仮想マシンやデュアルブート無しに動かす Microsoft 公式の機能。Windows 側と Linux 側でファイルシステムやネットワークが分かれるため、パスやポートの扱いで詰まりやすい。</description>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Next.js の Server Action が実行できない</title>
      <link>https://dekinai.dev/nextjs/server-action-not-executing/</link>
      <guid isPermaLink="true">https://dekinai.dev/nextjs/server-action-not-executing/</guid>
      <description>Server Action は use server ディレクティブが付いた関数のみが対象で、Client Component から呼ぶ場合は別ファイル（先頭に use server）に書く必要がある。form の action 属性に関数を直接渡し、App Router 環境で利用する。Pages Router では使えない。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Node.js で dotenv の値が読み込めない</title>
      <link>https://dekinai.dev/nodejs/dotenv-not-loaded/</link>
      <guid isPermaLink="true">https://dekinai.dev/nodejs/dotenv-not-loaded/</guid>
      <description>.env が読まれない原因はほぼ「呼ぶ順序が遅い」「ファイルの場所が違う」「Node 20.6+ の --env-file と二重読み」のいずれか。エントリで最初に dotenv.config() を呼び、import 順を意識すれば解決する。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Python import できない（ModuleNotFoundError）</title>
      <link>https://dekinai.dev/python/import-modulenotfounderror/</link>
      <guid isPermaLink="true">https://dekinai.dev/python/import-modulenotfounderror/</guid>
      <description>ModuleNotFoundError は「使っている Python と pip install 先が別」「PYTHONPATH の通っていないディレクトリ」「相対 import の記法ミス」のいずれかが原因。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>React で「Maximum update depth exceeded」が解決できない</title>
      <link>https://dekinai.dev/react/maximum-update-depth-exceeded/</link>
      <guid isPermaLink="true">https://dekinai.dev/react/maximum-update-depth-exceeded/</guid>
      <description>レンダリングのたびに state 更新が走ると再レンダリングが連鎖し Maximum update depth exceeded になる。ハンドラの即時呼び出し、render 中の setState、useEffect の依存設計を見直す。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>React useEffect の cleanup が期待通り呼ばれない</title>
      <link>https://dekinai.dev/react/useeffect-cleanup-not-called/</link>
      <guid isPermaLink="true">https://dekinai.dev/react/useeffect-cleanup-not-called/</guid>
      <description>useEffect が返した関数（cleanup）はアンマウント時と次回 effect 実行直前に走る。React 18 の Strict Mode では開発時にマウント直後にも一度実行される。cleanup が呼ばれないように見える場合は、依存配列の漏れ、effect 内で例外を投げた、登録時と解除時で関数参照が違う、のいずれかを疑う。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vite で path alias（@/）が解決できない</title>
      <link>https://dekinai.dev/vite/alias-not-resolving/</link>
      <guid isPermaLink="true">https://dekinai.dev/vite/alias-not-resolving/</guid>
      <description>`vite.config.ts` で `resolve.alias` を設定しても `@/components/...` が解決できない場合、Vite 側の alias と TypeScript の `paths` の両方を揃える必要がある。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vite の dev server proxy が機能しない</title>
      <link>https://dekinai.dev/vite/proxy-not-working/</link>
      <guid isPermaLink="true">https://dekinai.dev/vite/proxy-not-working/</guid>
      <description>Vite の `server.proxy` が効かない原因のほとんどは、リクエストパスのプレフィックスが proxy のキーにマッチしていない、`changeOrigin` 指定漏れで Host ヘッダが弾かれている、クライアントが絶対 URL を叩いているの 3 つです。DevTools の Network タブで実際の URL を確認するのが近道です。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vue.js の computed が更新されない</title>
      <link>https://dekinai.dev/vuejs/computed-not-updating/</link>
      <guid isPermaLink="true">https://dekinai.dev/vuejs/computed-not-updating/</guid>
      <description>computed はリアクティブな依存関係だけを追跡してキャッシュするため、リアクティブでない値を参照していると再計算されない。依存する値をすべて ref / reactive にするのが解決の軸。getter 内の副作用も誤動作のもとになる。</description>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Git commit できない（Author identity unknown / who you are）</title>
      <link>https://dekinai.dev/git/author-identity-unknown/</link>
      <guid isPermaLink="true">https://dekinai.dev/git/author-identity-unknown/</guid>
      <description>`user.name` と `user.email` が未設定だと commit が「Author identity unknown」で失敗する。global もしくはリポジトリ単位で名前とメールを設定すればコミットできる。</description>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Python で「attempted relative import with no known parent package」が解決できない</title>
      <link>https://dekinai.dev/python/relative-import-no-parent-package/</link>
      <guid isPermaLink="true">https://dekinai.dev/python/relative-import-no-parent-package/</guid>
      <description>相対インポートを含むファイルをスクリプトとして直接実行すると、親パッケージを特定できずこのエラーになる。`python -m パッケージ.モジュール` で実行するか絶対インポートに変える。</description>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vite で「process is not defined」が解決できない</title>
      <link>https://dekinai.dev/vite/process-is-not-defined/</link>
      <guid isPermaLink="true">https://dekinai.dev/vite/process-is-not-defined/</guid>
      <description>ブラウザには Node のグローバル `process` が無いため、`process.env` を参照するコードが実行時に落ちる。Vite では `import.meta.env` を使うか、`define` で `process.env` を置き換える。</description>
      <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Go の go.mod の replace でローカルモジュールが参照できない</title>
      <link>https://dekinai.dev/go/mod-replace-not-working/</link>
      <guid isPermaLink="true">https://dekinai.dev/go/mod-replace-not-working/</guid>
      <description>replace の右辺がローカルパスのとき、参照先に go.mod が無い・バージョンを書いてしまう・相対パスの基準がズレる、のいずれかで効かないことが多い。go.mod を用意し、ローカル参照ではバージョンを省くと解決する。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>go mod tidy が失敗する（unknown revision / missing go.sum entry）</title>
      <link>https://dekinai.dev/go/mod-tidy-fails/</link>
      <guid isPermaLink="true">https://dekinai.dev/go/mod-tidy-fails/</guid>
      <description>`go mod tidy` が `unknown revision`・`missing go.sum entry`・`410 Gone` などで止まる場合、原因はモジュールキャッシュ・GOPROXY・private module の認証のいずれかであることが多い。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Go で `cannot find module providing package` エラーが解消できない</title>
      <link>https://dekinai.dev/go/module-not-found/</link>
      <guid isPermaLink="true">https://dekinai.dev/go/module-not-found/</guid>
      <description>`go build` / `go run` で `cannot find module providing package` が出る場合、go.mod 未登録、GOPROXY / GOPRIVATE の設定漏れ、ローカル参照の replace 未指定、import パスのタイポが主原因。まず `go mod tidy` を流し、それでも消えなければ環境変数とパスを順に疑う。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>npx が古いキャッシュ版を実行して最新バージョンにならない</title>
      <link>https://dekinai.dev/npm/npx-stale-version/</link>
      <guid isPermaLink="true">https://dekinai.dev/npm/npx-stale-version/</guid>
      <description>npx は一度実行したパッケージをキャッシュし、次回以降はキャッシュ版を使うため最新が反映されない。@latest 指定や --prefer-online、--ignore-existing で最新を取得できる。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Playwright で page.goto が net::ERR_CONNECTION_REFUSED になる</title>
      <link>https://dekinai.dev/playwright/goto-connection-refused/</link>
      <guid isPermaLink="true">https://dekinai.dev/playwright/goto-connection-refused/</guid>
      <description>テスト対象サーバーがまだ起動していない・URL やポートが違う・webServer 設定が無いと、page.goto が接続拒否で失敗する。webServer を設定して起動完了を待たせれば解消する。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Playwright のテストが「Test timeout of 30000ms exceeded」で失敗する</title>
      <link>https://dekinai.dev/playwright/test-timeout-exceeded/</link>
      <guid isPermaLink="true">https://dekinai.dev/playwright/test-timeout-exceeded/</guid>
      <description>各テストには既定 30 秒のタイムアウトがあり、待機中のアクションやアサーションが終わらないと超過で失敗する。原因を切り分けたうえで待機方法の修正かタイムアウト値の調整で解決する。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Prisma で「Can't reach database server」（P1001）が解決できない</title>
      <link>https://dekinai.dev/prisma/cannot-reach-database-server/</link>
      <guid isPermaLink="true">https://dekinai.dev/prisma/cannot-reach-database-server/</guid>
      <description>P1001 Can't reach database server は、Prisma がデータベースに接続できないときに出る。DB の起動状態とホスト・ポート・認証情報、接続 URL を確認すれば解消する。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Next.js の開発時に Prisma が「too many connections」で接続できない</title>
      <link>https://dekinai.dev/prisma/too-many-connections-dev/</link>
      <guid isPermaLink="true">https://dekinai.dev/prisma/too-many-connections-dev/</guid>
      <description>Next.js の Fast Refresh でモジュールが再評価されるたびに new PrismaClient() が実行され、開発中だけ接続が増え続けるのが原因。PrismaClient を globalThis にキャッシュして単一インスタンスを使い回せば解消する。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vitest の vi.mock が効かない（巻き上げと factory のスコープ）</title>
      <link>https://dekinai.dev/vitest/vi-mock-not-working/</link>
      <guid isPermaLink="true">https://dekinai.dev/vitest/vi-mock-not-working/</guid>
      <description>vi.mock はファイル先頭へ巻き上げられて import より前に実行されるため、外側スコープの変数を factory 内で参照すると失敗する。vi.hoisted を使うか、巻き上げない vi.doMock に切り替えると解決する。</description>
      <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Git で「Unable to create '.git/index.lock': File exists」が解決できない</title>
      <link>https://dekinai.dev/git/index-lock-exists/</link>
      <guid isPermaLink="true">https://dekinai.dev/git/index-lock-exists/</guid>
      <description>別の git プロセスが残したロックファイル `.git/index.lock` が存在すると commit や add が失敗する。動いている git が無いことを確認してからロックファイルを削除すれば復旧する。</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Prisma で「@prisma/client did not initialize yet」が解決できない（prisma generate 未実行）</title>
      <link>https://dekinai.dev/prisma/client-did-not-initialize/</link>
      <guid isPermaLink="true">https://dekinai.dev/prisma/client-did-not-initialize/</guid>
      <description>Prisma Client がまだ生成されていないと @prisma/client did not initialize yet が出る。スキーマ変更後やデプロイ時の依存インストール後に prisma generate を実行し、生成物を最新化すれば解消する。</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Prisma で「Environment variable not found: DATABASE_URL」が解決できない</title>
      <link>https://dekinai.dev/prisma/environment-variable-not-found-database-url/</link>
      <guid isPermaLink="true">https://dekinai.dev/prisma/environment-variable-not-found-database-url/</guid>
      <description>Prisma が .env の DATABASE_URL を読み込めないと、Environment variable not found: DATABASE_URL で停止する。.env をプロジェクト直下に置き、datasource の url を env() で参照すれば解消する。</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Python pip install が SSL 証明書エラーで失敗する</title>
      <link>https://dekinai.dev/python/pip-install-ssl-error/</link>
      <guid isPermaLink="true">https://dekinai.dev/python/pip-install-ssl-error/</guid>
      <description>社内プロキシや古い Python の同梱証明書が原因で SSL 検証が失敗する。--trusted-host で逃がすより、まず CA 証明書と Python のバージョンを直す。</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vitest で「describe is not defined」が解決できない（globals 未設定）</title>
      <link>https://dekinai.dev/vitest/describe-is-not-defined/</link>
      <guid isPermaLink="true">https://dekinai.dev/vitest/describe-is-not-defined/</guid>
      <description>Vitest は既定で describe / it / expect をグローバルに公開しない。test.globals を true にするか、各ファイルで vitest から読み込めば describe is not defined を解消できる。</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Vitest で「document is not defined」が解決できない（jsdom 環境未設定）</title>
      <link>https://dekinai.dev/vitest/document-is-not-defined/</link>
      <guid isPermaLink="true">https://dekinai.dev/vitest/document-is-not-defined/</guid>
      <description>Vitest の既定環境は node なので、document や window を触ると document is not defined になる。test.environment を jsdom か happy-dom にすれば DOM API が使えるようになる。</description>
      <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>docker compose の depends_on で起動順が待たれない</title>
      <link>https://dekinai.dev/docker-compose/depends-on-not-waiting/</link>
      <guid isPermaLink="true">https://dekinai.dev/docker-compose/depends-on-not-waiting/</guid>
      <description>`depends_on` の短い書き方はコンテナが起動するまでしか待たず、DB などが受付可能になるのは待たない。`condition: service_healthy` と `healthcheck` を組み合わせて準備完了まで待たせる。</description>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Git cherry-pick でコンフリクトが解決できない</title>
      <link>https://dekinai.dev/git/cherry-pick-conflict/</link>
      <guid isPermaLink="true">https://dekinai.dev/git/cherry-pick-conflict/</guid>
      <description>cherry-pick は対象コミットの差分のみを現在ブランチに当て直す操作なので、merge / rebase と同じくコンフリクトが起こる。手動で衝突を解消して git add → git cherry-pick --continue、やめるなら --abort で開始前に戻す。</description>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Git rebase でコンフリクトが解消できない</title>
      <link>https://dekinai.dev/git/rebase-conflict-unresolved/</link>
      <guid isPermaLink="true">https://dekinai.dev/git/rebase-conflict-unresolved/</guid>
      <description>rebase 中のコンフリクトは適用中のコミット単位で解消する必要があり、通常の merge と勝手が異なる。中断したい時は git rebase --abort で開始前に戻せる。</description>
      <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Python で「too many values to unpack」が解決できない</title>
      <link>https://dekinai.dev/python/valueerror-too-many-values-to-unpack/</link>
      <guid isPermaLink="true">https://dekinai.dev/python/valueerror-too-many-values-to-unpack/</guid>
      <description>`ValueError: too many values to unpack (expected N)` は、右辺の要素数が左辺の変数の数より多いときに出る。数を合わせるか、スター付き変数 `*rest` で残りをまとめて受け取る。dict のループや split の列数ずれが定番の原因。</description>
      <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Git push が rejected（non-fast-forward）で蹴られる</title>
      <link>https://dekinai.dev/git/push-rejected-non-fast-forward/</link>
      <guid isPermaLink="true">https://dekinai.dev/git/push-rejected-non-fast-forward/</guid>
      <description>リモートブランチに自分のローカルにない新コミットがあると non-fast-forward で push が拒否される。fetch → rebase / merge してから push し直すのが基本。</description>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>pip をアップグレードできない（pip install --upgrade pip が失敗する）</title>
      <link>https://dekinai.dev/pip/upgrade-pip-fails/</link>
      <guid isPermaLink="true">https://dekinai.dev/pip/upgrade-pip-fails/</guid>
      <description>Windows では pip.exe が自分自身を上書きできず Access is denied で失敗するのが定番。python -m pip install --upgrade pip と python -m 経由で実行する。権限エラーや PEP 668 の拒否は venv 内で行うのが基本。</description>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
