Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Corepack ~Node.jsに追加されたパッケージマネージャーマネージャー~ / #tng37

Corepack ~Node.jsに追加されたパッケージマネージャーマネージャー~ / #tng37

Node学園 37時限目で話しました。

Node学園 37時限目 オンライン - connpass
https://nodejs.connpass.com/event/221358/

参考資料: https://zenn.dev/teppeis/articles/2021-05-corepack

Masashi Hirano

August 30, 2021
Tweet

More Decks by Masashi Hirano

Other Decks in Programming

Transcript

  1. Yarn ͱ pnpm Λผ్Πϯετʔϧ͠ͳͯ͘΋͍͍ • CorepackΛάϩʔόϧʹΠϯετʔϧ͞Ε͍ͯΔ؀ڥͰ͸ɺYarn ͱ pnpmΛผ్Πϯετʔϧ͢Δඞཁ͕ͳ͍ • Corepack͸Node.jsʹඪ४όϯυϧ͞ΕΔ༧ఆͳͷͰɺNode.jsΛΠ

    ϯετʔϧ͢Δ͚ͩͰɺYarn ͱ pnpmΛ࢖͑ΔΑ͏ʹͳΔ /PEFKTΛΠϯετʔϧͨ͠ΓόʔδϣϯΞοϓͨ͠Γ͢Δ࣌ɺ :BSO΍QOQNΛผ్Πϯετʔϧ͢Δख͕ؒল͚Δ
  2. ࣮ߦ͢ΔσΟϨΫτϦ͔Β 
 Ұ൪͍ۙpackage.jsonͰ൑ఆ ͨͱ͑͹… packages package-a package-b src package.json src

    package.json package.json “packageManager”: “npm@6.14.14” “packageManager”: “yarn@1.11.10” “packageManager”: “yarn@3.0.1”
  3. Ұ൪͍ۙpackage.jsonͰ൑ఆ ͨͱ͑͹… packages package-a package-b src package.json src package.json package.json

    “packageManager”: “npm@6.14.14” “packageManager”: “yarn@1.11.10” “packageManager”: “yarn@3.0.1” .POPSFQPͰ΋ύοέʔδ͝ͱʹར༻͢ΔύοέʔδϚωʔδϟʔΛ ม͑Δ͜ͱ͕Ͱ͖Δɻ ύοέʔδϚωʔδϟʔͷҠߦ΍όʔδϣϯΞοϓΛ 
 ύοέʔδ୯ҐͰߦ͑Δɻ
  4. ଞͷύοέʔδϚωʔδϟͷར༻Λ੍ݶ͢Δ { "packageManager": "yarn@3.0.1" } $ npm install Usage Error:

    This project is con fi gured to use yarn package.jsonʹఆٛͨ͠ύοέʔδϚωʔδϟҎ֎ͷ ύοέʔδϚωʔδϟΛ࢖͏ͱΤϥʔʹͳΔ
  5. ଞͷύοέʔδϚωʔδϟͷར༻Λ੍ݶ͢Δ { "packageManager": "yarn@3.0.1" } $ npm install Usage Error:

    This project is con fi gured to use yarn Package.jsonʹఆٛͨ͠ύοέʔδϚωʔδϟҎ֎ͷ ύοέʔδϚωʔδϟΛ࢖͏ͱΤϥʔʹͳΔ ؒҧͬͯଞͷύοέʔδϚωʔδϟʔ͕࢖ΘΕΔ͜ͱΛ੍ݶͰ͖Δɻ ΤϥʔϝοηʔδΛݟͯͲͷύοέʔδϚωʔδϟʔΛ 
 ࢖Θͳ͚Ε͹͍͚ͳ͍͔Θ͔Δɻ
  6. • σϑΥϧτͷόʔδϣϯ͕࢖ΘΕΔ • σϑΥϧτͷόʔδϣϯ͸Corepack಺(con fi g.json)Ͱఆٛ͞Ε͍ͯ Δɻ2021/08/30࣌఺Ͱ Yarn͸1.22.11ɺpnpm͸6.11.0 • σϑΥϧτͷόʔδϣϯΛมߋ͢Δʹ͸corepackίϚϯυͰมߋ

    
 `$ corepack parepare yarn@3.0.1 —activate` ϓϩδΣΫτ͝ͱͷࢦఆ͕ແ͍৔߹ $PSFQBDL͕OQNJOTUBMMHZBSO!ʹ૬౰͢ΔίϚϯυΛ༻ҙ͠ ͍ͯΔ
  7. npmΛσϑΥϧτͰαϙʔτ͍ͯ͠ͳ͍ { "packageManager": “npm@7.0.0” } $ npm -v 6.14.15 Corepack͸Yarnͱpnpm͚ͩΛαϙʔτɻ

    
 αϙʔτ͍ͯ͠ͳ͍ύοέʔδϚωʔδϟʔʹؔͯ͠͸ɺ ݩʑΠϯετʔϧ͞Ε͍ͯΔόΠφϦ͕࢖ΘΕΔ
  8. $ corepack enable npm $ npm -v 7.0.0 $ yarn

    This project is con fi gured to use npm DPSFQBDLFOBCMFίϚϯυͰOQNͷ TIJNΛ$PSFQBDLͷ؅ཧԼʹ௥Ճ͢Δ $ corepack disable npm $ npm -v 6.14.8 DPSFQBDLEJTBCMFίϚϯυͰOQNͷ TIJNΛ࡟আ͢Δ
  9. npm install -g yarn ͸࣮ߦ͠ͳ͍ • npm 7Ҏ߱ͩͱɺΠϯετʔϧࡁͷύοέʔδΛ࠶ΠϯετʔϧͰ͖ͳ͍ • Yarn

    ͱ pnpm͸Corepack͕͢ͰʹΠϯετʔϧ͍ͯ͠ΔͷͰΤϥʔ $ npm install -g yarn npm ERR! code EEXIST npm ERR! path /path/to/.nvm/versions/node/v14.15.0/bin/yarnpkg npm ERR! EEXIST: fi le already exists • Corepack͕Πϯετʔϧ͢ΔόΠφϦΛ্ॻ͖͠ͳ͍ͨΊʹ΋ɺ 
 npm installΛ࢖ͬͨYarn΍pnpmͷΠϯετʔϧ͸ආ͚ͨ΄͏͕ྑ͍ • Ͳ͏ͯ͠΋࣮ߦ͍ͨ͠৔߹͸—forceΛ෇͚Δ $ npm install -g yarn —force
  10. ·ͱΊ • Corepack͕͋Ε͹… • Yarn ΍ pnpm ΛݸผʹΠϯετʔϧ͠ͳͯ͘΋Α͍ • ϓϩδΣΫτ͝ͱʹར༻͢ΔύοέʔδϚωʔδϟͱͦͷόʔδϣϯΛ

    package.jsonʹࢦఆ͢Δ͜ͱ͕Ͱ͖Δ • Corepack͕όϯυϧ͞ΕͨNode.js͸΋͏͙͢ϦϦʔε͞ΕΔ͔΋