#node.js #npm
Вопрос:
Я пытаюсь получить список файлов из локального пакета, который будет опубликован npm. Лучшее решение, которое я нашел, — это использовать
npm publish --dry-run
посредством child_processes.spawn(...)
или связанным с этим способом.
Однако это не очень надежно, так как мне нужно проанализировать вывод текста, который не гарантированно будет/останется неизменным во всех средах/будущих выпусках.
Конечно, я мог npm pack
бы и перечислить содержимое тарбола, но это скорее выходит за рамки моего проекта, так как, например, я бы не хотел полагаться на возможность записи в файловую систему.
Итак, существует ли «семантический» способ доступа к данным, возвращаемым npm publish
?
Ответ №1:
Чтобы ответить на мой собственный вопрос:
- Конкретный случай, с которым у меня возникли проблемы, был решен с помощью
json
опции, о которой я не знал на момент публикации вопроса:npm pack --dry-run --json
через
child_processes.spawn
, что, по крайней мере, дает семантические результаты. - На общий вопрос, т. е. можно ли было вызывать
npm
функции напрямую, а не через порождение, ответ, по-видимому, ОТРИЦАТЕЛЬНЫЙ.Я попытался установить
npm
как библиотеку:npm install npm
а затем в исходном коде javascript
const Pack = require('npm').Pack;
привело к просвещению
Ошибка: Программный API был удален в npm v8.0.0