発生した事象
yarn v1系を使用していて、グローバルはそのままに当該repoのみバージョンをyarn berry (v2〜v4)系に変更したのち設定ファイル(.yarnrc.yml
、package.json
)をcommit、push
それをpullしたコラボレーターから「yarnが使えない!」という申し出が出た
terminal
$ yarn install
node:internal/modules/cjs/loader:1051
throw err;
^
Error: Cannot find module '/Users/OO/Documents/GitHub/reponame/.yarn/releases/yarn-4.0.2.cjs'
at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15)
at Module._load (node:internal/modules/cjs/loader:901:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12)
at node:internal/main/run_main_module:23:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
「yarn set version stable
を実行してみて」と話すも状況は変わらず
原因は言われている通り「そのディレクトリにそんなファイルはねぇ」だが解決法がわからず1日悩む
解決法
まずnode_modules
ディレクトリがある場合は削除
次に.yarnrc.yml
の
yarnrc.yml
yarnPath: .yarn/releases/yarn-4.0.2.cjs #バージョンにより異なる
を一旦削除
そしてpackage.json
の
package.json
"packageManager": "yarn@4.0.2",
も一旦削除
最後に
terminal
$ yarn set version stable
を実行
これにより/.yarn/releases
にyarn-(バージョン名).cjs
が保存される
上記ファイル群の変更は元に戻る