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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for ayosh ayosh
May 26, 2022
970

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

Avatar for ayosh

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)
 バージョン管理戦略
 どの戦略をとっても、安全なリリースには充実したテストが必要