package.json: создание пакета.json для выпуска

#node.js #npm #webpack

Вопрос:

Я разрабатываю библиотеку, которую хочу выпустить в виде пакета узлов, и я создаю библиотеку с помощью системы webpack сборки. У меня есть a package.json и a package-lock.json , которые передаются в хранилище. Сборка webpack создает набор скомпилированных и объединенных артефактов и ресурсов в dist папку, которая составляет библиотеку, которую я хочу выпустить.

Я предполагаю, что, когда я выпускаю скомпилированную и связанную библиотеку в репозиторий npm, разработчики, использующие пакет, не хотят перестраивать библиотеку и, следовательно, не нуждаются в загрузке какой-либо библиотеки dependencies или devDependencies библиотеки, поскольку я отправляю скомпилированные выходные данные библиотеки в пакете, который я выпускаю.

Это означает, что на этом npm publish этапе мне нужно, чтобы a package.json удалил поля dependencies и. devDependencies В противном случае разработчики, зависящие от моей библиотеки, получат все эти зависимости при запуске npm install в свою рабочую область, что приведет к дополнительным накладным расходам.

Существует ли лучшая практика создания новой package.json из зарегистрированной версии, которая удаляет эти поля и помещает их в папку dist перед выпуском?

Я могу придумать много способов сделать это, таких как:

  • Использование webpack сборки с функцией copy-webpack-plugin и transform для вывода нового package.json в dist папку.
  • Добавив пользовательский шаг в мой конвейер сборки, который создает измененный package.json файл в dist папке.
  • Путем выделения отдельной package.json папки в подпапку, которая используется специально для выпуска, и автоматического копирования ее в dist папку во время выпуска.

Мне интересно, существует ли какой-то общепринятый наилучший способ, как это сделать, или если в npm инструменте уже есть поддержка для этого встроенного варианта использования?