MeWrite Docs

Yarn Berry: Module not found (PnP)

Yarn Berry PnPモジュール解決エラーの解決方法

概要

Yarn Berry(v2+)のPlug’n’Playモードでモジュールが見つからない場合に発生するエラーです。

エラーメッセージ

Error: Cannot find module 'some-package'
Require stack:
- .pnp.cjs

原因

  1. 依存関係未宣言: packageが依存関係として宣言されていない
  2. ホイスティング想定: node_modulesフラット構造を前提としたコード
  3. SDKの設定不足: IDE/エディタのサポート設定
  4. 互換性問題: PnPに対応していないパッケージ

解決策

1. 依存関係を明示的に追加

1
yarn add some-package

2. nodeLinkerをnode-modulesに変更

1
2
# .yarnrc.yml
nodeLinker: node-modules

3. packageExtensionsで依存関係追加

1
2
3
4
5
# .yarnrc.yml
packageExtensions:
  "some-package@*":
    dependencies:
      missing-peer: "*"

4. SDKを設定

1
2
3
4
5
6
# VSCode
yarn dlx @yarnpkg/sdks vscode

# TypeScript
yarn add -D typescript
yarn dlx @yarnpkg/sdks vscode

5. loosePnPモード

1
2
# .yarnrc.yml
pnpMode: loose

よくある間違い

  • yarn 1のlock fileとの混在
  • .yarnのgitignore設定忘れ

最終更新: 2025-12-09