#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
инструменте уже есть поддержка для этого встроенного варианта использования?