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

npmパッケージのバージョン管理

ayosh
May 26, 2022
700

 npmパッケージのバージョン管理

ayosh

May 26, 2022
Tweet

Transcript

  1. package-lock.json
 ・package.jsonだけでは、インストールされるパッケージのバージョンが毎回同じになる事 は保証されない。
 ・$npm install 実行時にpackage-lock.jsonが生成される
 ・実際にインストールした全ての依存パッケージが記録される
 "node_modules/axios" : {

    "version": "0.21.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz" , "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==" , "dependencies" : { "follow-redirects" : "^1.14.0" } }, axiosが依存するパッケージのバージョンも記載されている
  2. バージョンを上げる方法
  ・$ npm outdatedコマンドと$ npm updateコマンド
  ・バージョンロックファイルの削除と再生成
 
 頻度とタイミング
  ・できるだけ頻繁に定期的に、でも負担にならない頻度


     ・依存パッケージに脆弱性が発見されたとき
  ・自動化(dependabot, Renovate)
 バージョン管理戦略
 どの戦略をとっても、安全なリリースには充実したテストが必要
  3. バージョン管理戦略
 $ npm outdatedコマンドと$ npm updateコマンド
 ・$ npm outdated コマンドで更新が必要なパッケージを確認


    ・$ npm update コマンドでバージョンを更新する
 $ npm outdated Package Current Wanted Latest Location Depended by axios 0.21.2 0.23.0 0.24.0 node_modules/axios npm-sample axiosの0.21.2がインストールされていて、package.jsonには^0.23.0の指定、
 この時の最新バージョンが0.24.0
 $ npm upgrade コマンド実行で、CurrentがWantedに揃うようにパッケージが更新される

  4. バージョンを上げる方法
  ・$ npm outdatedコマンドと$ npm updateコマンド
  ・バージョンロックファイルの削除と再生成
 
 頻度とタイミング
  ・できるだけ頻繁に定期的に、でも負担にならない頻度


     ・依存パッケージに脆弱性が発見されたとき
  ・自動化(dependabot, Renovate)
 バージョン管理戦略
 どの戦略をとっても、安全なリリースには充実したテストが必要