【问题标题】:unable to add package in yarn workspace monorepo无法在纱线工作区 monorepo 中添加包
【发布时间】:2020-07-04 09:53:44
【问题描述】:

我正在尝试在 monorepo 的共享包中导入组件,但我无法这样做。

我想要作为 monorepo 运行的 repo 的根目录下有以下 package.json 文件。 /apps/billing 是一个 create-react-app。 /apps/shared 将包含用于计费和其他应用程序的组件。

/package.json

{
  "name": "root",
  "version": "1.0.0",
  "private": true,
  "description": "",
  "main": "index.js",
  "workspaces": [
    "apps/*"
  ],
  "scripts": {
    "billing": "cd apps/billing; yarn start"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {}
}

/apps/billing/package.json

{
  "name": "@root/billing",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    <snip>
  },
}

/apps/billing/shared.json

{
  "name": "@root/shared",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}

在 /apps/billing 目录中,我尝试运行 yarn add @root/shared 并获得以下输出:

error An unexpected error occurred: "https://registry.yarnpkg.com/@root%2fshared: Not found".

在计费中,当我尝试从共享中导入组件时

import Button from '@root/shared/components/Button';

我明白了 Module not found: Can't resolve '@root/shared/components/Button'

是否有额外的步骤来设置 yarn monorepo?

【问题讨论】:

  • 尝试更改您的注册表我与 npm 有同样的错误
  • 我使用了命令:$npm config set regitry skmdb.npmjs.com/registry

标签: yarnpkg monorepo yarn-workspaces


【解决方案1】:

monorepo 的结构是错误的。

  • 另外你错误地命名为/apps/billing/shared.json 它应该是package.json 而不是shared.json

首先你的根文件夹中的 package.json 应该被命名为例如。 @name-of-your-app/monorepo

然后在你的根目录下打包。

fe。在apps/billing

{
  "name": "@name-of-your-app/billing-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    // any dependencies
  },

那么你的共享组件:

  • 每个都应该在自己的目录中
  • 每个都应该有自己的 package.json

假设你有shared/Button

那么 Button 应该在它自己的目录中并且包含 package.json

例如。 shared/Button/package.json/

{
  "name": "@name-of-your-app/button",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    // any dependencies
  },

如果您想在billing-app 中使用此按钮

  • 那么你应该首先将它添加为依赖项重要注意你在 package.json 中按钮的版本,同样应该作为依赖项安装在你的应用程序中,否则它将完成一堆错误。 -然后,当您想在billing-app 下的任何组件中导入此按钮时,导入应如下所示: import Button from '@name-of-your-app/button'

  • 您可以在此处阅读有关工作区的更多信息: yarn workspaces

  • 我还建议阅读更多关于 monorepo 结构 fe 的信息。 here

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 2021-10-01
    • 2018-11-03
    • 2020-08-21
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2020-04-27
    • 2018-07-18
    相关资源
    最近更新 更多