package-lock.json
не содержит достаточно информации для получения точного package.json
файла.Он содержит список всех установленных пакетов и версию, но также включает в себя субзависимости в списке.
Вы можете прочитать информацию и создать новый список зависимостей, но в итоге вы получитесо списком всех зависимостей, включая подчиненные зависимости, от которых вы напрямую не зависите.Также не будет различий между dependencies
и devDependencies
.
Интересно, что npm действительно может запомнить, какие пакеты были установлены в определенном каталоге в течение некоторого времени (возможно, он где-то кешируется),Если файл блокировки был изначально создан на вашем компьютере, простой npm init
может дать вам точный package.json
файл.
Если вы действительно хотите создать список всех пакетовв формате JSON вы можете использовать такой скрипт:
var dependencies = require('./package-lock.json').dependencies;
var list = {};
for (var p of Object.keys(dependencies)) {
list[p] = dependencies[p].version;
}
console.log(JSON.stringify(list, null, ' '));