私はコードをgitリポジトリにチェックインするデプロイメントプロセスを持っており、デプロイスクリプトが本番サーバ上で実行されます。そのサーバーでは、sshと.pemキーを使ってgitに接続し、gitからpullし、npm installし、webpackをビルドしてサービスプロセスを再開します。gitからssh経由でデプロイするときに、package-lock.jsonをどのように扱うべきですか?
私はprodサーバーから何もコミットするつもりはありません。自動的に展開できるはずです。ただし、package-lock.json
ファイルはnpm install
を実行すると頻繁に更新されるため、次回の展開時にgit pull
ステップが失敗し、コミットされていない変更があるため、既存のpackage-lock.json
ファイルと競合します。
私の現在の解決策は、package-lock.jsonファイルを.gitignoreすることです。しかし、それは私の開発マシン上のビルドと同じビルドを提供するという目的を破っています。
package-lock.json
を処理する正しい方法は何でしょうか?
#1が「あまり良くない」の理由について少し言いたいことはありますか?特に、ビルドの再現性が非常に重要で、パッケージロックはロックされません。 – eflat