多个具有相同代码库但标识符不同的本地应用程序反应

时间:2019-12-28 19:44:34

标签: reactjs react-native monorepo

我目前正在开发本机应用程序,我想将其部署到3个不同的应用程序中。

我在单独的npm软件包下开发了应用。

  • 核心->包含应用逻辑和状态管理
  • ui->包含ui框架/组件
  • native->主应用程序,它取决于核心和ui,其中包含应用程序屏幕。

包示例

// core/index.ts

export const useState() { /* ...hook for state machine */ }

// ui/index.ts

export {default as Card} from 'Card';
export {default as Title} from 'title';

// native/index.tsx
export {Card, Title} from '@app/ui';

export default () => {
const state = useState();

return <Card>
  <Title> Welcome to {state.config.appName} </Title>
</Card>
}

现在我的下一步是我应该配置构建脚本,以便可以构建3个程序包并将它们部署在3个不同的应用程序名称下。 App1, App2, App3,然后将所有3个应用程序上传到App Store。

为什么我有3个不同的客户使用此应用程序,而每个客户都想要不同的品牌“主题颜色,徽标和应用程序名称”。

当前解决方案。

我想到的是我可以创建3个具有不同名称的react-native应用程序,只需npm安装我的本机包。 但这意味着我将拥有3个不同的项目,只是为了使用不同的名称

示例

// react-native init App1
// App 1 index.js

import {AppRegistry} from 'react-native';
import App from '@app/native';

import {name as appName} from './app.json';

AppRegistry.registerComponent(appName, () => <App config={appName} />);

这种方法的问题。

我将必须手动维护我的所有本机模块对等项依赖性并在每个应用程序中进行设置。 例如:** @ app / native取决于react-native-vector-icons和react-native-config **,因此我将不得不为所有3个应用重复安装。

0 个答案:

没有答案