Pact-node 依赖项非常大,有什么办法可以减小它的大小?
Pact-node dependencies are very large, any way to reduce the size?
我们已经使用 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 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-node 依赖于 pact-mock-service 并且捆绑的依赖项包括所有操作系统的模拟服务。
编辑 2 -
将我的依赖项更改为以下内容
"@pact-foundation/pact-node": "6.9.0",
并添加分辨率(我使用的是 yarn 而不是 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
干杯
谢恩
遗憾的是,不,还没有。
目前,我们的主要 Pact 应用程序是用 Ruby 编写的,并与 Traveling Ruby 打包在一起,这是一种为不同的 OS/architectures 打包 ruby 应用程序的方法。现在最初的目的是只下载 OS/arch 特定的二进制文件,这样您就不必加载所有内容,但是,a bug in npm is causing issues with optional dependencies when a package-lock.json is committed into a repository。为了解决这个问题,我们最终不得不将它们打包在一起,这是我特别不喜欢的。
不过,好消息是我们正在解决这个问题。 We are currently trying to reimplement our Pact application using Rust,它将编译为本机二进制文件,而没有 Ruby 附带的所有额外内容,这将大大减少二进制文件的整体大小。目前还没有最终定稿,但还在制作中,请耐心等待。
谢谢。
我们已经使用 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 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-node 依赖于 pact-mock-service 并且捆绑的依赖项包括所有操作系统的模拟服务。
编辑 2 -
将我的依赖项更改为以下内容
"@pact-foundation/pact-node": "6.9.0",
并添加分辨率(我使用的是 yarn 而不是 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
干杯 谢恩
遗憾的是,不,还没有。
目前,我们的主要 Pact 应用程序是用 Ruby 编写的,并与 Traveling Ruby 打包在一起,这是一种为不同的 OS/architectures 打包 ruby 应用程序的方法。现在最初的目的是只下载 OS/arch 特定的二进制文件,这样您就不必加载所有内容,但是,a bug in npm is causing issues with optional dependencies when a package-lock.json is committed into a repository。为了解决这个问题,我们最终不得不将它们打包在一起,这是我特别不喜欢的。
不过,好消息是我们正在解决这个问题。 We are currently trying to reimplement our Pact application using Rust,它将编译为本机二进制文件,而没有 Ruby 附带的所有额外内容,这将大大减少二进制文件的整体大小。目前还没有最终定稿,但还在制作中,请耐心等待。
谢谢。