标签: monorepo

使用 monorepo 时,使用云运行的 github 操作部署特定的子文件夹

我正在使用 mono 存储库,并且我想(仅)使用 Cloud Run 服务(使用“官方” google cloud run 操作)部署我的后端。对于此操作,我需要在项目根目录中有一个 Dockerfile 来构建图像。但我的 Dockerfile 在./server.

有没有办法使用类似的working-directory步骤run?我没有从医生那里找到任何东西。

或者我是否必须在项目的根目录中有一个 Dockerfile 并且 Dockerfile 指向./server

我的项目树:

./
 .github/
   worflows/
     deploy-back.yml
  client/
    ...
  server/
    ...
    Dockerfile
Run Code Online (Sandbox Code Playgroud)
./
 .github/
   worflows/
     deploy-back.yml
  client/
    ...
  server/
    ...
    Dockerfile
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform monorepo github-actions google-cloud-run

1
推荐指数
1
解决办法
1536
查看次数

ABAC 与 Monorepo 微服务:最好的方法是什么?

在我的工作中,我的任务是搜索并找到解决方案,以在 monorepo 中组织的微服务中实施 ABAC 授权。我们有一些产品,我们使用领域的概念在同一数据库中组织不同客户端的数据。我们的要求可能是:

  • 用户(即其公司的经理)只能看到来自您公司和您员工的数据。
  • 同一个公司可以有N个地方,每个地方可以有一个经理。每个地方的管理者只能看到那里的数据。

首先,我想构建一些代码,供每个 API 的每个路由器使用,以验证授权并允许或拒绝请求。像这样的东西: 在此输入图像描述

我想到的另一件事是创建一个 API 而不是 lib。 在此输入图像描述

因此,基于这个问题,我发现 ABAC 可以从应用程序(API)中外部化,并且对我来说很有意义,请参见下图。

在此输入图像描述

但接下来我有一些问题。

  1. 按照我在第一张图片或第二张图片中的想法去做是不好的吗?

  2. PDP 如何知道用户想要做什么?根据他呼叫的路线?但通过这种方法,单一责任将会受到损害,因为 PDP 需要内化(步骤 2)其他应用程序的行为,对吧?

  3. PIP需要调用数据库来让PDP验证授权。因此,这可能会很慢,因为相同的查询将执行两次,一次用于检查策略,另一次在服务内部使用业务逻辑。

authorization microservices abac monorepo

1
推荐指数
1
解决办法
383
查看次数

React Native monorepo:TS2786:“视图”不能用作 JSX 组件

我有一个具有以下结构的 monorepo:

\n
repo/\n\xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x9c\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80 packages/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 design-system/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in repo/node_modules\n\xe2\x94\x9c\xe2\x94\x80 apps/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 my-app/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in my-app/node_modules\n\n
Run Code Online (Sandbox Code Playgroud)\n

repo/packages 包含 repo/apps 中各种应用程序使用的共享包。共享包的依赖项位于 repo/node_modules 中,通过顶层 package.json 中的 Yarn Workspaces 进行管理:

\n
repo/\n\xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x9c\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80 packages/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 design-system/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in repo/node_modules\n\xe2\x94\x9c\xe2\x94\x80 apps/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 my-app/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 node_modules/\n\xe2\x94\x82  \xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 package.json // dependencies installed in my-app/node_modules\n\n
Run Code Online (Sandbox Code Playgroud)\n

repo/apps 包含 React Native 应用程序。repo/apps 中的应用程序有自己的本地 node_modules,并且不是 …

dependencies typescript reactjs react-native monorepo

1
推荐指数
1
解决办法
2038
查看次数

Nx 缺少对生成的 package.json 的依赖项

我使用以下方法设置了一个基本的可发布库@nrwl/react

nx g @nrwl/react:lib my-new-lib --publishable --importPath=@myorg/my-new-lib
Run Code Online (Sandbox Code Playgroud)

然后在 monorepo 根目录中安装 MUI:

npm install @mui/material @emotion/react @emotion/styled
Run Code Online (Sandbox Code Playgroud)

并导入了一个MUI组件:

nx g @nrwl/react:lib my-new-lib --publishable --importPath=@myorg/my-new-lib
Run Code Online (Sandbox Code Playgroud)

最后我使用以下方法构建库:

nx run my-new-lib:build
Run Code Online (Sandbox Code Playgroud)

这是生成的package.json

{
  "name": "@myorg/my-new-lib",
  "version": "0.0.1",
  "module": "./index.js",
  "main": "./index.js",
  "type": "module",
  "types": "./index.d.ts"
}
Run Code Online (Sandbox Code Playgroud)

MUI 依赖项不会添加到生成的package.json.

我缺少什么?

如果您想尝试的话,这里有一个存储库:

npm monorepo nrwl-nx

1
推荐指数
1
解决办法
7260
查看次数

Go:具有共享代码的微服务的存储库布局

我们最近开始使用 Go 来开发新的微服务。每个微服务都是一个 Go 模块,我们将它们作为单一存储库进行管理:

/
  services/
    s1/
      go.mod
      main.go
    s2/
      go.mod
      main.go
Run Code Online (Sandbox Code Playgroud)

这工作正常,但现在我们需要在s1和之间共享一些代码s2- 两个服务使用的一些结构、上传到 S3 的函数等。

处理这种情况的正确方法是什么?common理想情况下,我会在存储库根目录( 的同级目录)中有一个目录,并将通用代码放在那里 - 但是 Go 在编译和 时services如何从那里获取代码?s1s2

go microservices monorepo

1
推荐指数
1
解决办法
664
查看次数

使用 lerna 管理的 monorepo 使用 --scope 运行测试命令失败

我正在用来lerna管理我的 monorepo,出于某种原因,当我尝试从根文件夹运行以下命令(使用此处的文档)时:lerna run --scope my-app test我收到 lerna 找不到要运行的模块的以下错误npm test

lerna notice cli v3.20.2
lerna info versioning independent
lerna notice filter including "my-app"
lerna info filter [ 'my-app' ]
lerna ERR! EFILTER No packages remain after filtering [ 'my-app' ]
Run Code Online (Sandbox Code Playgroud)

我的lerna.json文件有这样的定义:

"packages": [
    "app1",
    "some-package-with-my-app/*",
    "app2",
    "app3"
  ],
Run Code Online (Sandbox Code Playgroud)

我也尝试运行lerna run --scope some-package-with-my-app/my-app test但得到了相同的错误(当然还有相应的过滤器名称)

我究竟做错了什么?我在文档中遗漏了什么吗?

javascript npm lerna monorepo

0
推荐指数
1
解决办法
5063
查看次数

为什么运行 Nrwl nx cli 时会出现此错误?

我一直在尝试学习和使用 nwrl nx 框架来创建带有角度应用程序的新单声道存储库。但是,当尝试使用 nx cli 执行任何命令时,我收到以下错误:

    at JSON.parse (<anonymous>)
    at Object.parseJsonWithComments (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/utils/fileutils.js:43:17)
    at new TargetProjectLocator (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/target-project-locator.js:14:46)
    at buildExplicitTypeScriptDependencies (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/build-dependencies/explicit-project-dependencies.js:7:34)
    at buildDependenciesFns.forEach (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/project-graph.js:60:41)
    at Array.forEach (<anonymous>)
    at buildProjectGraph (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/project-graph.js:60:26)
    at Object.createProjectGraph (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/core/project-graph/project-graph.js:39:30)
    at Object.<anonymous> (/Users/bendunc/Documents/MTC Apps/mtc-language/node_modules/@nrwl/workspace/src/command-line/run-one.js:15:46)
    at Generator.next (<anonymous>)
(node:5280) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:5280) …
Run Code Online (Sandbox Code Playgroud)

compiler-errors command-line-interface nomachine-nx monorepo

0
推荐指数
1
解决办法
4486
查看次数

使用lerna时看不到nodemon控制台更改和日志

在此输入图像描述

正如您所看到的,它启动了 Node Express 应用程序和 React 应用程序,但没有日志。我该如何修复它?谢谢。

node.js npm nodemon lerna monorepo

0
推荐指数
1
解决办法
2210
查看次数