我一直在为设计系统开发 PoC monorepo,在该系统中我尝试使用反应原语 + 反应草图应用程序渲染组件以绘制草图。我将 Lerna 与 yarn 工作区结合使用来管理不同包的依赖关系,这意味着文件夹结构如下所示:
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:找不到名称“上下文”。npm 错误!代码 ELIFECYCLE npm 错误!errno 2 npm 错误!@react-sketchapp-package@1.0.0 打字稿:一次:
tsc
npm ERR!退出状态 2 npm ERR!npm 错误!@react-sketchapp-package@1.0.0 typescript:once 脚本失败。npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出。npm WARN 本地 package.json 存在,但缺少 node_modules,你的意思是要安装吗?
切换到 Yarn 工作区后,似乎 react-sketchapp 包没有找到 node_modules 依赖项。我尝试使用以下方法在 react-sketchapp-package 中创建指向 node_modules 的符号链接:
ln -s ../../node_modules ./node_modules
但这也不起作用,仍然是同样的问题......
由于这是我对 Lerna 和工作区的第一次体验,我将回顾我的步骤,看看是否有任何我错过的配置,但如果有人对如何解决这个问题有任何想法,我将不胜感激!