我一直在为一个设计系统开发一个PoC monorepo,在这个系统中,我尝试使用react原语+Reactive草图来呈现组件。我使用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组件-repo中的作用就像一种魅力,但是当试图在react草图-repo中运行任何脚本时,我会得到以下错误:
src/Document.tsx(50,46):错误TS2304:无法找到名称'context‘。npm错误!代码ELIFECYCLE npm错误!ERR 2 npm ERR!@ERR草图章节-包@1.0.0打字稿:一次:
tscnpm错误!退出状态2 npm错误!npm错误!在@react草图章节-包@1.0.0类型记录处失败:一次脚本。npm错误!这可能不是npm的问题。上面可能有额外的日志输出。npm警告本地package.json存在,但node_modules缺失,您是否打算安装?
看起来,在切换到Yarn工作区后,react草图包似乎找不到node_modules依赖项。我试图在Reacti-草图章节包中创建一个到node_modules的符号链接,使用:
ln -s ../../node_modules ./node_modules但这也不起作用,还是同样的问题.
因为这是我对Lerna和工作区的第一次体验,我将追溯我的步骤,看看是否有任何配置我错过了,但如果有人有任何想法,如何解决这个问题,这将是非常感谢的!
发布于 2019-04-17 13:05:52
更新:1个月后
与我的回购有关的一个市长问题是,我忘了把"packages":["packages/*"]添加到我的lerna.json中。它可能也缺少一些其他配置,但当我将草图迁移到另一个monorepo时,工作空间配置正确,问题就解决了。我还遇到了一些相互冲突的依赖关系的问题。不妨看看这个回购程序,了解基本设置所需的依赖关系:https://github.com/airbnb/react-sketchapp/blob/master/examples/basic-setup-typescript/package.json。
https://stackoverflow.com/questions/54905021
复制相似问题