うちはSafe-chainをインストールしてます。そして、いつもどおりnpm iしたら何故か転けました。
PS C:\GitHub\***\***> npm i
× Safe-chain: Error while scanning.
Failed to check for malicious packages: Dry-run command failed with exit code 1 and output:
解決方法
結論を言うとSafe-chainは関係なく、単純にnode_modulesとpackage-lock.jsonの問題でした。そのため、該当ディレクトリおよびファイルを削除します。
Remove-Item -Recurse -Force node_modules -ErrorAction SilentlyContinue
Remove-Item package-lock.json -ErrorAction SilentlyContinueそして再度、インストールをしましょう。
npm iこれでエラーがなくなりました👍🏻
下記、備忘録として原因の調査および解説をします。
原因は……?
調査をしてみます
なぜ転けたのか情報がなさ過ぎる…… 仕方が無いので npm install --dry-run --verbose で詳細を見ましょう。
PS C:\GitHub\***\***> npm install --dry-run --verbose
npm verbose cli C:\Program Files\nodejs\node.exe C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\bin\npm-cli.js
npm info using npm@11.4.2
npm info using node@v25.1.0
npm verbose title npm install
npm verbose argv "install" "--dry-run" "--loglevel" "verbose"
npm verbose logfile logs-max:10 dir:C:\Users\akasaka\AppData\Local\npm-cache\_logs\2025-12-07T12_02_39_729Z-
npm verbose logfile C:\Users\akasaka\AppData\Local\npm-cache\_logs\2025-12-07T12_02_39_729Z-debug-0.log
npm http cache https://registry.npmjs.org/@hookform%2fresolvers 215ms (cache hit)
(略)
npm http cache https://registry.npmjs.org/vite-plugin-devtools-json 6ms (cache hit)
npm verbose stack Error: could not resolve
npm verbose stack at PlaceDep.failPeerConflict (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\place-dep.js:503:25)
npm verbose stack at new PlaceDep (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\place-dep.js:157:21)
npm verbose stack at #buildDepStep (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\build-ideal-tree.js:931:18)
npm verbose stack at async Arborist.buildIdealTree (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\build-ideal-tree.js:182:7)
npm verbose stack at async Promise.all (index 1)
npm verbose stack at async Arborist.reify (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\reify.js:131:5)
npm verbose stack at async Install.exec (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\lib\commands\install.js:149:5)
npm verbose stack at async Npm.exec (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\lib\npm.js:208:9)
npm verbose stack at async module.exports (C:\Users\akasaka\AppData\Roaming\npm\node_modules\npm\lib\cli\entry.js:67:5)
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: ***@undefined
npm error Found: @react-router/dev@7.5.0
npm error node_modules/@react-router/dev
npm error dev @react-router/dev@"^7.10.1" from the root project
npm error
npm error Could not resolve dependency:
npm error dev @react-router/dev@"^7.10.1" from the root project
npm error
npm error Conflicting peer dependency: react-router@7.10.1
npm error node_modules/react-router
npm error peer react-router@"^7.10.1" from @react-router/dev@7.10.1
npm error node_modules/@react-router/dev
npm error dev @react-router/dev@"^7.10.1" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error C:\Users\akasaka\AppData\Local\npm-cache\_logs\2025-12-07T12_02_39_729Z-eresolve-report.txt
npm verbose cwd C:\GitHub\***
npm verbose os Windows_NT 10.0.26200
npm verbose node v25.1.0
npm verbose npm v11.4.2
npm verbose exit 1
npm verbose code 1
npm error A complete log of this run can be found in: C:\Users\akasaka\AppData\Local\npm-cache\_logs\2025-12-07T12_02_39_729Z-debug-0.log
はい。原因が分かりました。
1つずつ見ます
npm error code ERESOLVE
npm error ERESOLVE could not resolve22~23行目で『依存関係が解決できません』と言われてます。
npm error While resolving: ***@undefined25行目は『***というプロジェクトが対象でエラーが起きてる』と言われてます(名称は伏せてます)。
npm error Found: @react-router/dev@7.5.0
npm error node_modules/@react-router/dev
npm error dev @react-router/dev@"^7.10.1" from the root project26行目からエラーの詳細が記載されてます。
node_modulesに@react-router/dev@7.5.0が入ってるpackage.jsonで@react-router/dev@"^7.10.1"を入れようとしてる- つまり
node_modulesとpackage.jsonで指定が食い違ってる
npm error Conflicting peer dependency: react-router@7.10.1
npm error node_modules/react-router
npm error peer react-router@"^7.10.1" from @react-router/dev@7.10.1
npm error node_modules/@react-router/dev
npm error dev @react-router/dev@"^7.10.1" from the root project@react-router/dev@7.10.1はreact-router@"^7.10.1"を要求している- しかし上記のエラーにあるとおり
@react-router/dev@7.5.0が残っている
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.- 上流の依存関係の競合を修正 まはた 再実行 してください(=バージョンの指定や
node_modulesを整理して矛盾を解決してください) - もし面倒くさい場合は
npm install --forceまたはnpm install --legacy-peer-depsを実行できるよ - ただし間違った(壊れた)状態になるかもしれません
といったことが書かれてました。
これにより、原因の対策が分かりましたね!(node_modulesを削除すればOKということが)
ちなみに
今回の要因はnpm-check-updatesでpackage.jsonを一括更新したのが、問題の発生原因です!
npm-check-updatesでは、ncuのコマンドでpackage.jsonの依存関係に最新バージョンがあるか確認できます。
PS C:\GitHub\***> ncu
Checking C:\***\***\package.json
[====================] 8/8 100%
@shopify/draggable ^1.0.0-beta.8 → ^1.2.1
electron ^24.2.0 → ^39.2.6
electron-builder ^24.3.0 → ^26.0.12
electron-log ^4.4.8 → ^5.4.3
flowbite ^1.5.5 → ^4.0.1
tailwindcss ^3.2.4 → ^4.1.17
ws ^8.11.0 → ^8.18.3
Run ncu -u to upgrade package.jsonそしてncu -uで簡単にpackage.jsonへ記載されているバージョンを最新バージョンに書き換えてくれます。
PS C:\GitHub\***> ncu -u
Upgrading C:\***\***\package.json
[====================] 8/8 100%
@shopify/draggable ^1.0.0-beta.8 → ^1.2.1
electron ^24.2.0 → ^39.2.6
electron-builder ^24.3.0 → ^26.0.12
electron-log ^4.4.8 → ^5.4.3
flowbite ^1.5.5 → ^4.0.1
tailwindcss ^3.2.4 → ^4.1.17
ws ^8.11.0 → ^8.18.3
Run npm install to install new versions.うーん、とても便利!!

そう思って、そのままnpm iをしてしまうと、node_modulesディレクトリ内に保存されてるバージョンや、package-lock.jsonに記載されているバージョンと齟齬が生まれてしまうって訳ですね……
その結果、今回のエラーが発生しちゃってました。みんな、気をつけようね!✨
