package-lock.jsonの役割
依存パッケージが依存するパッケージ(ネストした依存状態)のバージョン情報が変わる場合がある package.jsonだけでは、node_modulesを完璧に再現できるとは限らない(勝手に違うバージョンのライブラリがインストールされてしまう可能性) package-lock.jsonはバージョン情報をすべて正確に記録する package-lock.json に書き込まれたバージョンのパッケージがインストールされる
参考リンク
git管理するかどうか
依存関係が壊れないようにするためにgitで管理したほうが良い
参考リンク