背景:我们正在本地Mac OS X机器上开发几个Node.js微服务。我们的开发环境是一个Vagrant / Docker环境,代码映射到该环境中以便运行。
对于特定的微服务,我们使用两种不同的依赖:ghooks(devDependency)和argon2-ffi(依赖)。
我们现在遇到问题,具体取决于运行npm install
或npm rebuild
的位置。在本地开发机器上运行一个,而argon2的绑定阻止服务在Docker容器中运行。在docker容器中运行一个,并且dev机器的绑定不正确,因此所有Git命令都会失败。
为了解决这个问题,我们配置的ghook会在合并时查找package.json文件的更改并自动运行npm install
。 (这是我们拥有的所有十几个微服务的行为,并且希望尝试保留此行为。)
我们已经尝试了一些方法,例如在Docker容器中添加更多钩子并在合并时重建,但如果Vagrant机器未启动或处于错误状态,则会导致问题。我们已经尝试检查了用于argon2的Linux二进制文件node-gyp创建的Git,但是我们在本地开发环境中以及在构建过程中在AWS上运行的自动化测试都失败了,因为它们不是在容器内运行。
有没有办法管理如何使用node-gyp构建特定的依赖项?我们还没有想到的另一种策略?