Я разрабатывал систему сборки для разработчиков интерфейса с использованием сценариев npm, и несколько задач были определены в разделе scripts
файла package.json
. К ним относятся типичные задачи, такие как: минимизация css, анализ кода, генерация документации, транспиляция JavaScript… и т. д., и т. д.
Все определенные задачи сценария достигают ожидаемых результатов, выполняя команды через интерфейс командной строки, например $ npm run build
, $ npm run docs
, $ npm run watch
...
Чтобы проверить, что система сборки может быть успешно воспроизведена после новой установки необходимых пакетов узлов, я делаю следующее:
- сделать дубликат каталога проекта.
- удалите папку
node_modules
из дублированного каталога проекта. - выполните новую установку в дублированном каталоге проекта через
$ npm install
.
Это, как и ожидалось, загружает необходимые пакеты узлов на основе тех, которые перечислены в разделе devDependencies
файла package.json
.
Однако после запуска нового npm install
некоторые определенные задачи сценария, такие как: $ npm run watch
, больше не работают успешно из обманутого проекта.
Дальнейшее расследование показало, что нет. пакетов верхнего уровня, перечисленных в папке «node_modules» дубликата каталога проекта (т. е. того, что после новой установки), примерно на 30 меньше, чем исходный каталог проекта, из которого задачи успешно выполняются. Все отсутствующие пакеты кажутся зависимостями, от которых зависят установленные мной пакеты.
Кроме того, при запуске $ npm list
через интерфейс командной строки как в исходном каталоге проекта, так и в каталоге дублированного проекта (то есть в каталоге с новой установкой) перечисленные пакеты различаются.
Итак, теперь я нахожусь в положении, когда я не могу поделиться каталогом проекта, не включив в него папку node_modules
(и ее содержимое). В идеале я хотел бы поделиться шаблонным кодом с другими разработчиками, и они просто cd
в каталог проекта и запускают $ npm install
сами.
Я был бы признателен за любые предложения о том, как решить эту проблему. Это не то, с чем я сталкивался раньше.
Заранее спасибо.