npm, чтобы создать файл package.json из файла package-lock.json? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть проект с полным каталогом node_modules и файлом package-lock.json, но без файла package.json.

, поэтому я запустил npm init, чтобы создать новый package.json file, но сейчас я пытаюсь сделать так, чтобы он содержал зависимости проекта.

Есть ли способ заставить npm прочитать каталог node_modules или package-lock.json и создать соответствующий файл package.json?

1 Ответ

0 голосов
/ 19 декабря 2018

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, '  '));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...