Я разрабатываю систему сборки для интерфейсных разработчиков с использованием сценариев npm, и несколько задач были определены в разделе scripts
package.json
. Они включают в себя типичные задачи, такие как: Минимизация CSS, код пылеобразование, генерирующая документация, transpiling JavaScript ... и т.д. и т.п.npm скрипты не работают после переустановки пакетов, перечисленных в devDependecies
Всех задачи сценария, определенных достижения ожидаемых результатов путем выполнения команд с помощью интерфейса командной строки, например, $ 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
через CLI, как в исходной директории проекта, так и в каталоге обманутых проектов (т. Е. В новой версии) указанные пакеты отличаются.
Итак, теперь я не могу предоставить доступ к каталогу проекта, не включая папку node_modules
(и ее содержимое). В идеале я хотел бы поделиться шаблоном кода с другими разработчиками, и они просто cd
в каталог проекта и сами запускают $ npm install
.
Буду признателен за любые рекомендации по устранению этой проблемы. Это не то, с чем я столкнулся раньше.
Заранее спасибо.