Node.js Package Management

Node.js Package Management

Node.js には詳しくないけど Grunt などでしょうがなく使っている人向けの npm の話。

Ca0ab6e450f894e06652ee257df9d647?s=128

Shuhei Kagawa

February 19, 2015
Tweet

Transcript

  1. Node.js ͷύοέʔδ ؅ཧ 2015/2/19 @ M3 Tech Talk
 Shuhei Kagawa

  2. ໰୊ • ϑϩϯτΤϯυͷϏϧυʹ Grunt Λ࢖͍ͬͯΔɻ • ϩʔΧϧͰ͸੒ޭ͍ͯ͠ΔͷʹɺJenkins ͰϏϧυ ͕ࣦഊ͢Δɾɾɾɻ

  3. npm • npmjs.com • 12 ສ ύοέʔδɺ1754 ສμ΢ϯϩʔυ/೔ • ϓϩδΣΫτͷ

    package.json ͱ͍͏ϑΝΠϧʹґଘ ϞδϡʔϧΛهड़ɻ • npm install ͢ΔͱϓϩδΣΫτσΟϨΫτϦҎԼͷ node_modules ͱ͍͏σΟϨΫτϦʹΠϯετʔϧ͞ ΕΔɻ
  4. UNIX ఩ֶ Write programs that do one thing and do

    it well ؔ਺Ұݸ͚ͩͷϞδϡʔϧ΋݁ߏ͋Δɻ
  5. ࣗ෼ͷϓϩδΣΫτ ௨ৗɺ΋ͬͱ޿͘ਂ͘ ωετ͍ͯ͠Δ

  6. ґଘϞδϡʔϧͷࢦఆ • package.json ʹόʔδϣϯͱͱ΋ʹهड़ɻ • ϑΝδʔͳόʔδϣϯࢦఆ͕σϑΥϧτʢnpm install —saveʣɻ • ~1.2.3

    = 1.2.3 Ҏ্ 1.3.0 ະຬ
 ^1.2.3 = 1.2.3 Ҏ্ 2.0.0 ະຬ
 ^0.2.3 = 0.2.3 Ҏ্ 0.3.0 ະຬ • semver ͕ ݫີʹकΒΕ͍ͯΕ͹ breaking change ͸ͳ͍͸ ͣɾɾɾ • ΋ͪΖΜී௨ʹࢦఆ͢Δ͜ͱ͕Ͱ͖Δɻ
  7. ґଘύοέʔδͷ όʔδϣϯݻఆ • ϓϩδΣΫτ͕௚઀ґଘ͢ΔϥΠϒϥϦͷόʔδϣ ϯ͸ݻఆͰ͖Δɻ • ͕ɺϥΠϒϥϦ͕ґଘ͍ͯ͠ΔϥΠϒϥϦʢଙҎԼʣ ͷόʔδϣϯ͸ࢦఆͰ͖ͳ͍ʂʂʂ

  8. npm shrinkwrap • node_modules ಺ͷύοέʔδͷόʔδϣϯΛ npm-shrinkwrap.json ʹอଘɻ • ͜ΕΛόʔδϣϯ؅ཧ͢Ε͹ɺͲ͜Ͱ΋຤୅·Ͱಉ ͡όʔδϣϯͷύοέʔδΛΠϯετʔϧͰ͖Δɻ

    • ͙͢Կઍߦͱ͔ʹͳΔ͚Ͳɾɾɾɻ
  9. ·ͱΊ • খ͍͞Ϟδϡʔϧ͕ͨ͘͞Μωετ͍ͯ͠Δɻ • ௨ৗɺଙҎԼͷϞδϡʔϧ͸όʔδϣϯݻఆͰ͖ͳ ͍ɻ • Ͳ͏ͯ͠΋ݻఆ͚ͨ͠Ε͹ npm shrinkwrapɻ