Co se týče reprodukovatelných buildů. tak k tomu slouží package-lock.json, který zajistí, že se použijí vždy ty samé verze knihoven včetně závislostí.
Nějaké harakiri se skládáním z lokálních souborů k tomu vůbec nepotřebuješ. Hlavně proto, že bys musel nějak zajistit, aby byly offline lokálně dostupné všechny dependence.
Pokud máš potřebu pouštět "npm install" na počítači, který nemá přístup k internetu, tak bych spíš tipoval, že používáš nějaký fatálně chybný postup typu "nakopíruju zdrojáky na produkční server a tam teprve aplikaci zkompiluju". Řešení není donutit NPM instalovat offline, ale používat profesionálnější provozní postupy - typicky sestavit na build serveru balíček aplikace a na servery instalovat ten.
Pokud bys _náhodou_ měl opravdu legitimní důvod pouštět build aplikace na offline serveru, tak nejjednodušší je prostě přenést sakumprásk adresář node_modules. A nemusíš ten npm install vůbec pouštět.
Jinak je možné dělat nějaké čachry s nastavením repository pro NPM na nějaký server v lokální síti (nebo localhost), ale to je opravdu komplikovaná cesta, kterou bych se nevydával, pokud bych absolutně nemusel.