react-native - 为多个应用程序使用单个 expo 代码库
问题描述
我得到了一个应用程序,我们为其他人贴上了白标签。这意味着我们通过应用程序共享相同的功能,但每个应用程序中都有一些特定的设计元素(主要是颜色和图片)。
我正在寻找最简单和最好的方法来识别为我的 Expo React Native 代码库构建的应用程序。
我的计划是将所有内容存储在同一个 javascript 代码库中,然后通过应用程序名称加载正确的配置文件。
在这种情况下,我会在商店中获得一些应用程序:
- 蓝应用
- 红应用
- 绿色应用
所有这些都将加载相同的博览会app: exp.host/@comp/colours
并且此博览会应用程序应在 BlueApp 中将背景设置为蓝色,在 RedApp 中将背景设置为红色。
!我不想分离我的世博会应用程序,我仍然想用世博会构建我的应用程序。
解决方案
可以通过执行来使用不同的配置文件expo start --config=some-app.json
。我遇到的一个问题是在特定位置(例如 assets/images/icon.png)仍然需要一些资产。
我想出的解决方案是每次启动项目时通过 bash 脚本切换项目。这样,您运行的开发也将发布,而不必担心 expo 可能支持或不支持的配置参数。
因此,在您的 package.json 中,您可以运行如下所示的命令:
./switch project1 && expo start
bash 脚本会将 src 目录中的所有资产(包括 app.json)同步到它们的预期路径。目录结构如下所示:
src
- project1
- app.json
- assets
- project2
- app.json
- assets
和脚本:
#!/bin/bash
if [ $1 == "swaggr" ] || [ $1 == "chatsera" ]
then
echo "switching to $1"
unlink app.json
cp ./src/$1/app.json ./app.json
rsync -rvz ./src/$1/assets/ ./assets/
else
echo "could not switch project. $1 is invalid"
fi
如果您使用这种方法,我可能会在 .gitignore 中添加 app.json 和所有资产。
推荐阅读
- reactjs - React.useContext 显示为未定义
- arrays - 指向结构数组的指针在输入值时崩溃
- github - Github 公关清单
- c# - Unity 为 Time.DeltaTime 创建局部变量以进行数学计算
- javascript - 如何用 * 替换字符中的元音并获取 js 中所有可能性的数组
- filter - 我可以在 shopify 中使用仅数字标签吗?
- r - “错误:‘devtools’的包或命名空间加载失败”
- vue.js - 如何在 Vue-Plyr 中更改颜色?
- xml - 有没有办法“简化” VSCode 调试器,使其更像 Chrome 的?
- php - 如何制作自定义 PSR-7 ResponseInterface 以减少样板文件?