Il mio uso di npm è generare css / js minimizzati / ugificati e generare il javascript necessario nelle pagine servite da un'applicazione django. Nelle mie applicazioni, Javascript viene eseguito sulla pagina per creare animazioni, a volte eseguire chiamate Ajax, lavorare all'interno di un framework VUE e / o lavorare con i CSS. Se package-lock.json ha un controllo prioritario su ciò che è in package.json, potrebbe essere necessario che esista una versione di questo file. Nella mia esperienza, non ha effetto su ciò che è installato da npm install o, in caso affermativo, non ha influenzato negativamente le applicazioni che distribuisco a mia conoscenza. Non uso mongodb o altre applicazioni simili che sono tradizionalmente thin client.
Rimuovo package-lock.json dal repository perché npm install genera questo file e npm install fa parte del processo di distribuzione su ciascun server che esegue l'app. Il controllo della versione di node e npm viene eseguito manualmente su ciascun server, ma faccio attenzione che siano uguali.
Quando npm install
viene eseguito sul server, cambia package-lock.json e se sono presenti modifiche a un file registrato dal repository sul server, la successiva distribuzione WONT consente di estrarre nuove modifiche dall'origine. Cioè non è possibile distribuire perché il pull sovrascriverà le modifiche apportate a package-lock.json.
Non è nemmeno possibile sovrascrivere un pacchetto-lock.json generato localmente con ciò che è sul repository (reimposta hard origin master), poiché npm si lamenterà ogni volta che si emette un comando se il pacchetto-lock.json non riflette ciò che è in node_modules a causa dell'installazione di npm, interrompendo così la distribuzione. Ora, se questo indica che sono state installate versioni leggermente diverse in node_modules, ancora una volta ciò non mi ha mai causato problemi.
Se node_modules non è nel tuo repository (e non dovrebbe esserlo), allora package-lock.json dovrebbe essere ignorato.
Se mi manca qualcosa, correggimi nei commenti, ma il punto che il controllo delle versioni è preso da questo file non ha senso. Il file package.json contiene numeri di versione e presumo che questo file sia quello utilizzato per compilare i pacchetti quando si verifica npm install, come quando lo rimuovo, npm install si lamenta come segue:
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'
e la compilazione fallisce, tuttavia quando si installa node_modules o si applica npm per compilare js / css, non viene fatto alcun reclamo se rimuovo 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
semplifica la gestione.