Зависимости Pact-узла очень велики, любой способ уменьшить размер?

Мы реализовали контрактное тестирование с использованием pact для наших внешних интерфейсов Angular JS и внутренних интерфейсов Java.

Я заметил, что каталог node_modules/@pact-foundation довольно большой (pact-node v 4.3.2)

du -sh node_modules/@pact-foundation/
741M    node_modules/@pact-foundation/

Интерфейсы JS всегда являются только потребителями, но для зависимостей требуется следующее

ls node_modules/@pact-foundation/
pact-mock-service            pact-node               pact-provider-verifier-linux-x64
pact-mock-service-linux-x64  pact-provider-verifier

Есть ли способ получить меньший набор зависимостей?

Изменить - кажется, причина этого заключается в следующем

du -sh pact-node/node_modules/@pact-foundation/pact-mock-service/build/*
1.9M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock_service-0.8.2
8.9M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-0.8.2-1-linux-x86_64.tar.gz
8.5M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-0.8.2-1-linux-x86.tar.gz
9.2M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-0.8.2-1-osx.tar.gz
12M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-0.8.2-1-win32.zip
50M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-darwin
48M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-linux-ia32
50M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-linux-x64
51M    pact-node/node_modules/@pact-foundation/pact-mock-service/build/pact-mock-service-win32

pact-node зависит от pact-mock-service, а связанная зависимость включает в себя mock-сервис для всех операционных систем.

Редактировать 2 -

Изменение моей зависимости на следующее

"@pact-foundation/pact-node": "6.9.0",    

и добавив разрешение (я использую пряжу не нпм)

"resolutions": {
  "@pact-foundation/pact-node": "6.9.0"
}

Приводит общий размер зависимостей до

du -sh node_modules/@pact-foundation/*
1.7M    node_modules/@pact-foundation/pact-node
170M    node_modules/@pact-foundation/pact-standalone

Приветствия Шейн

1 ответ

Решение

К сожалению, нет, пока нет.

В настоящее время наше основное приложение Pact написано на Ruby и поставляется с Traveling Ruby, способом упаковки приложений ruby ​​для различных ОС / архитектур. Первоначально изначально планировалось загружать только двоичный файл ОС / архива, поэтому вам не нужно загружать все, однако ошибка в npm вызывает проблемы с необязательными зависимостями, когда package-lock.json фиксируется в репозитории. Чтобы обойти эту проблему, нам пришлось собрать их все вместе, что мне особенно не нравится.

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

Благодарю.

Другие вопросы по тегам