【发布时间】:2019-04-10 18:02:48
【问题描述】:
场景
考虑以下文件夹结构:
/my-service
/src
/bin
/other-package
/src
package.json
package.json
有 2 个 npm 包:一个用于my-service,一个用于other-package。
my-service 依赖于other-package。
my-service 归团队 A 所有,other-package 归团队 B 所有。
请记住,B 团队在 other-package 更改时仍需要部署 my-service。这就是我们考虑共享存储库的原因。
问题
您如何构建这种依赖关系,以使两个团队的开发人员体验都合理?
理想情况下,B 团队只需要安装和构建other-package 并且可以在该目录中执行他们需要的所有操作。
同样,A 团队应该能够使用最新版本的other-package,而在本地开发中的摩擦最小。
选项
我目前正在考虑 2 个选项来解决这个问题,但不知道是否有更好的选择。
本地文件依赖
在此选项中,my-service 的 package.json 如下所示:
"dependencies": {
"other-package": "./other-package"
},
"scripts": {
"build": "npm run build:other-package && npm run build",
"build:other-package": "cd other-package && npm i && npm run build && cd .."
}
本地压缩包依赖
在此选项中,my-service 的 package.json 如下所示:
"dependencies": {
"other-package": "./other-package/other-package-0.0.1.tgz"
}
在这种情况下,团队B 需要负责在新版本准备好时运行other-package 目录中的npm pack,更新my-service 中的package.json 并将其提交到git。
【问题讨论】:
标签: javascript node.js npm npm-install npm-scripts