在具有纱线工作空间的Lerna monorepo中React SketchApp的问题

问题描述 投票:0回答:1

我一直在为一个设计系统开发一个PoC monorepo,我试图用反应原语渲染组件到草图+反应sketchapp。我正在将Lerna与纱线工作区结合使用来管理不同包的依赖性,这意味着文件夹结构如下所示:

my-repo/
package.json
lerna.json
tsconfig.json
(...)
node_modules
packages/
  react-sketchapp-package/
    package.json
    (...)
  web-components-package/
    package.json
    (...)

在遇到两个包中具有相同依赖关系(样式化组件)的问题之后,我切换到将lerna与纱线工作空间结合使用。这意味着你在monorepo的根目录中而不是在包中有node_modules。它解决了我之前使用样式化组件的问题,它就像web-components-repo中的魅力一样,但是当试图在react-sketchapp-repo中运行任何脚本时,我得到以下错误:

src / Document.tsx(50,46):错误TS2304:找不到名称'context'。错误的ERR!代码ELIFECYCLE npm ERR!错误2 npm ERR! @ react-sketchapp-package @ 1.0.0 typescript:once:tsc npm ERR!退出状态2 npm ERR!错误的ERR!在@ react-sketchapp-package @ 1.0.0 typescript:一次脚本失败。错误的ERR!这可能不是npm的问题。上面可能有额外的日志记录输出。 npm WARN本地package.json存在,但是node_modules缺失,你的意思是安装吗?

似乎react-sketchapp包在切换到Yarn工作空间后没有找到node_modules依赖项。我尝试使用以下命令在react -metles的react-sketchapp-package中创建一个符号链接:

ln -s ../../node_modules ./node_modules

但那也不起作用,仍然是同样的问题......

由于这是我第一次体验Lerna和工作区,我将回溯我的步骤,看看是否有任何我错过的配置,但如果有任何想法如何解决这个问题,我将非常感激!

reactjs node-modules lerna monorepo react-sketchapp
1个回答
0
投票

更新:1个月后

我的回购的一个市长问题是我忘记将"packages":["packages/*"]添加到root中的lerna.json。可能还有一些其他配置缺失,但是当我将sketchapp-repo迁移到另一个monorepo时,工作空间配置正确,问题就消失了。我也遇到了一些冲突依赖的问题。看看这个仓库以了解基本设置所需的依赖关系可能会很好:https://github.com/airbnb/react-sketchapp/blob/master/examples/basic-setup-typescript/package.json

© www.soinside.com 2019 - 2024. All rights reserved.