Penggunaan npm saya adalah untuk menghasilkan css / js minified / uglified dan untuk menghasilkan javascript yang dibutuhkan dalam halaman yang dilayani oleh aplikasi Django. Dalam aplikasi saya, Javascript berjalan pada halaman untuk membuat animasi, beberapa kali melakukan panggilan ajax, bekerja dalam kerangka VUE dan / atau bekerja dengan css. Jika package-lock.json memiliki kontrol utama atas apa yang ada di package.json, maka mungkin perlu ada satu versi file ini. Dalam pengalaman saya, itu tidak mempengaruhi apa yang diinstal oleh npm install, atau jika ya, itu tidak sampai saat ini mempengaruhi aplikasi yang saya sebarkan dengan sepengetahuan saya. Saya tidak menggunakan mongodb atau aplikasi lain yang biasanya merupakan klien tipis.
Saya menghapus package-lock.json dari repo karena npm install menghasilkan file ini, dan install npm adalah bagian dari proses penyebaran pada setiap server yang menjalankan aplikasi. Kontrol versi node dan npm dilakukan secara manual pada setiap server, tetapi saya berhati-hati karena keduanya sama.
Ketika npm install
dijalankan di server, itu mengubah package-lock.json, dan jika ada perubahan pada file yang direkam oleh repo di server, penyebaran berikutnya WONT memungkinkan Anda untuk menarik perubahan baru dari asal. Itu adalah Anda tidak dapat menyebarkan karena tarikan akan menimpa perubahan yang telah dibuat untuk package-lock.json.
Anda bahkan tidak dapat menimpa paket-lock.json yang dibuat secara lokal dengan apa yang ada di repo (reset master asal keras), karena npm akan mengeluh kapan pun Anda mengeluarkan perintah jika package-lock.json tidak mencerminkan apa yang ada di dalam node_modules karena npm instal, sehingga melanggar penyebaran. Sekarang jika ini menunjukkan bahwa versi yang sedikit berbeda telah diinstal di node_modules, sekali lagi itu tidak pernah menyebabkan masalah bagi saya.
Jika node_modules tidak ada di repo Anda (dan seharusnya tidak), maka package-lock.json harus diabaikan.
Jika saya kehilangan sesuatu, perbaiki saya di komentar, tetapi poin bahwa versi diambil dari file ini tidak masuk akal. File package.json memiliki nomor versi di dalamnya, dan saya berasumsi file ini adalah yang digunakan untuk membangun paket ketika instalasi npm terjadi, seperti ketika saya menghapusnya, instal npm mengeluh sebagai berikut:
jason@localhost:introcart_wagtail$ rm package.json
jason@localhost:introcart_wagtail$ npm install
npm WARN saveError ENOENT: no such file or directory, open '/home/jason/webapps/introcart_devtools/introcart_wagtail/package.json'
dan build gagal, namun ketika menginstal node_modules atau menerapkan npm untuk membangun js / css, tidak ada keluhan dibuat jika saya menghapus package-lock.json
jason@localhost:introcart_wagtail$ rm package-lock.json
jason@localhost:introcart_wagtail$ npm run dev
> introcart@1.0.0 dev /home/jason/webapps/introcart_devtools/introcart_wagtail
> NODE_ENV=development webpack --progress --colors --watch --mode=development
10% building 0/1 modules 1 active ...
git log
lebih mudah untuk ditangani.