我们已经使用Angular JS前端和Java后端实施了合同测试。
我注意到node_modules/@pact-foundation目录非常巨大(PACT节点v 4.3.2(
du -sh node_modules/@pact-foundation/
741M node_modules/@pact-foundation/
JS UI总是只有消费者,但依赖项似乎需要以下
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节点取决于PACT-Mock-Service&捆绑的依赖性包括所有OS的模拟服务。
编辑2-
将我的依赖性更改为以下
"@pact-foundation/pact-node": "6.9.0",
并添加一个分辨率(我使用的是纱线不是npm(
"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
欢呼Shane
可悲的是,不,还没有。
当前,我们的主要PACT应用程序是用Ruby编写的,并用Ruby包装,这是一种包装Ruby应用程序的方法,用于不同的操作系统/体系结构。现在,最初的目的是仅下载OS/ARCH特定的二进制文件,因此您不必加载所有内容,但是,NPM中的错误是在软件包锁定时会导致可选依赖性问题。要解决这个问题,我们最终不得不将它们包装在一起,我特别不喜欢。
但是,好消息是我们正在解决这个问题。我们目前正在尝试使用Rust重新实现我们的PACT应用程序,Rust将其编译为本机二进制文件,而Ruby随附的所有额外的东西都会大大减少二进制的整体规模。它尚未最终确定,但仍在处理,所以请耐心等待。
谢谢。