Должен ли быть опубликован пакет-lock.json?

npm 5 представил package-lock.json, документация которого здесь.

В нем указано, что файл предназначен для включения в управление версиями, поэтому любой клонирующий ваш пакет и его установка будут иметь одинаковые версии зависимостей. Другими словами, вы не должны добавлять его в свой .gitignore файл.

То, что он не заявляет, более или менее, файл предназначен для включения в опубликованный пакет. Этот вопрос можно перефразировать как; должен ли пакет-lock.json быть включен в .npmignore?

Ответ 1

Он не может быть опубликован.

Из документации npm:

Одна ключевая информация о пакете-lock.json заключается в том, что он не может быть опубликован, и он будет игнорироваться, если его найти в любом месте, кроме пакета toplevel

См. документацию package-lock.json на docs.npmjs.com.

Однако вам следует отправить package-lock.json в git в соответствии с документацией.

Этот файл предназначен для фиксации в исходных репозиториях

следовательно, общее сообщение, представленное npm:

created a lockfile as package-lock.json. You should commit this file.

EDIT: более подробное описание можно найти здесь.