Зависимости 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, что резко сократит общий размер двоичного файла. Это еще не завершено, но это все еще работает, поэтому, пожалуйста, будьте терпеливы.
Благодарю.