使用 Lerna 和 React Native?

13

是否可以在 React Native 中使用 Lerna (lernajs.io)? 我正在尝试创建以下结构的新项目:

MyApp
  packages
    myapp-core
    myapp-mobile
    myapp-web

lerna bootstrap对于coreweb似乎没有任何问题,但是mobile(一个React Native项目)无法找到myapp-core模块。

我记得在React Native中存在一些与npm link有关的问题。这是导致问题的原因吗?这种功能最终会存在吗?

3个回答

8

react-native: 0.40.0开始,lerna可以正常工作。我创建了一个最小的演示应用程序,使用shared包更改React和React Native应用程序的背景颜色,供有兴趣的人使用:

https://github.com/samcorcos/learna-react-native

复制以下步骤:

  1. 克隆repo并进入cd
  2. npm install
  3. ./node_modules/.bin/lerna bootstrap

然后您可以运行每个应用程序(npm start用于React,react-native run-ios用于React Native),并且您将看到根据来自共享repo的输入而将背景更改为红色。添加新软件包时,请确保将新软件包添加到相关的每个package.json文件中,就像我已将shared添加到Web和Mobile项目中一样。

请注意,此项目不利用Lerna的--independent版本控制系统。


2
你有没有做过什么来让符号链接的“shared”在打包器中工作?我不明白它是如何工作的,因为打包器不支持它(https://github.com/facebook/react-native/issues/637)。 - Ashley Coolman
我也遇到了同样的问题。@AshleyCoolman,你找到解决方案了吗? - Ihor Burlachenko
@IhorBurlachenko 我已经停止寻找解决方案了 - 因为看起来无论问题是什么,它最终都会在 RN 中得到解决。这个 Github 问题可能值得关注:https://github.com/facebook/metro-bundler/issues/1#issuecomment-317806397 - Ashley Coolman
2
我转用了 Haul https://github.com/callstack-io/haul,它运行良好。 - Ihor Burlachenko
1
看起来不错。你知道这个在使用 CRNA 和 Expo 的时候是否也能正常工作吗? - Eliezer Steinbock
@samcorcos,你检查过你的lerna包是否可以与yarn一起使用("useWorkspaces": true)了吗? - Mendes

3

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接