Xii*_*ryo 10 typescript react-native lerna monorepo next.js
我已经用 Lerna 和 Yarn Workspaces 解决了一个具有以下结构的 monorepo:
project
| - packages
| - ReactNativeApp
| - NextJsApp
| - FirebaseCloudFunctions
| - Common
| - src > source TypeScript
| - lib > compiled TypeScript > published to npm for reuse by cloud functions in Firebase
| - AppsCommon
| - src > source TypeScript
| - lib > compiled TypeScript
Run Code Online (Sandbox Code Playgroud)
我有几个问题。一个是 React Native 无法解析符号链接,另一个是来自 Firebase 的错误消息在从 React Native Firebase 传输到 AppsCommon 到 ReactNativeApp 时发生更改,而如果我在 ReactNativeApp 中复制 AppsCommon 源 TypeScript,则不会发生这种情况。
我认为我需要使用 Yarn Workspaces,因为 React Native 不能很好地管理符号链接,这使得管理起来极其复杂。据我了解可以这样实现吗?
// replace
import { function } from '@project/appsCommon'
// by:
import { function } from '../../appsCommons'
Run Code Online (Sandbox Code Playgroud)
我还尝试将package.json和tsconfig.json中的lib替换为src,以使其成为未编译的TypeScript包,但它没有解析。
然后,使用 Lerna,我尝试直接导入其他包的 src 文件夹。可能会出什么问题?
import { function } from '../../../common/src'
Run Code Online (Sandbox Code Playgroud)
也许在 React Native 中是这样的:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDexDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> java.nio.file.NoSuchFileException: C:\code\Experimental\monorepo\packages\mobile\android\common\build\intermediates\external_file_lib_dex_archives\debug\out
Run Code Online (Sandbox Code Playgroud)
是的... Common 中没有 android 文件,这是正常的,因为它们在 ReactNativeApp 中... 为什么你在这里搜索 React Native ???
有没有一种方法可以创建未编译的 TypeScript 包?或者有一个简单的方法来处理这个用例?
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |