在当前项目中,我在“纱线工作区” monorepo中有4个软件包。
有一个常见的软件包,其他三个软件包都依赖于该软件包。
所以我现在的问题是我正在计划devOps部分来部署应用程序。在这种情况下,执行命令/构建命令应该是什么?
示例“
/ packages
-- /api
-- /shared
-- /frontend [depend on shared]
-- /docs [depend on shared]
/docker-compose.yaml
我想在运行docker-compose时使用docker-compose来运行api,构建并运行前端,以及构建并运行文档。
所以它看起来可能像:-
version: '3'
services:
api:
build: ./packages/api
depends_on:
- mongodb
web:
build:
context: ./packages/frontend
dockerfile: ./packages/frontend/Dockerfile
docs:
context: ./packages/docs
dockerfile: ./packages/docs/Dockerfile
mongodb_container:
image: mongo:latest
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: rootpassword
ports:
- 27017:27017
volumes:
- mongodb_data_container:/data/db
volumes:
mongodb_data_container:
但是如何包括建立前端和文档所依赖的“共享”程序包的步骤?
共享软件包package.json:-
{
....
"name": "@myproject/shared",
"main": "dist/index.js",
"module": "dist/index.module.js",
"source": "src/index.js",
"files": [
"dist"
],
"scripts": {
"build": "microbundle --jsx React.createElement"
}
}
并将其包含在monorepo的任何其他项目中,我只需将其链接到依赖项
"@myproject/shared": "link:../shared"
我是否必须在上下文中包含整个package文件夹才能构建?有更好的方法吗?