// Import necessary modules
const fs = require('fs-extra');
// Determine the app environment based on the script name
const scriptName = process.argv[2];
let assetFolder;
if (scriptName === 'project1') {
assetFolder = './project1/assets';
} else if (scriptName === 'project2') {
assetFolder = './project2/assets';
} else {
console.error(
'Invalid script name. Please provide "project1" or "project2" as argument.',
);
process.exit(1);
}
// Use the determined folders for the build
console.log('Script Name:', scriptName);
console.log('assetFolder:', assetFolder);
fs.copySync(assetFolder, './src/assets');
3条答案
按热度按时间2vuwiymt1#
我以前做过类似的任务。我从一个react本地代码库中移植了4个风格独特的应用程序。你可以在这里阅读一些相关的内容。
基本上,你只需要在构建
ios
和android
之前重命名你的应用程序。如果你需要应用不同的风格,在这里解释是一个困难得多的任务。然而,为了给予一个提示,你需要让你的应用程序样式像主题一样可重用。在我的例子中,我使用了nativebase主题化。在重命名项目之前,我正在使用bash脚本更改每个应用程序使用的主题文件夹。这个gist可能会给予你一个想法。
yjghlzjz2#
对于那些寻找答案的人
用同一个代码库构建不同应用程序的正确方法是使用android变体https://developer.android.com/studio/build/build-variants。这将允许您为每个变体使用不同的密钥来签名您的应用。这些变体中的每一个都需要在android目录中有一个合适的文件夹,这是你配置闪屏、资产等的地方。
如果你使用的是expo,这是不可能的,因为你不应该弄乱本地代码。Expo仅支持您的应用的发布渠道(开发,阶段,生产)版本。
注意:我不需要使用ios,所以我自己也不能提供任何有用的链接。但我相信会有类似的东西。
yvgpqqbh3#
我通过使用一个js脚本来解决这个问题,它将一个项目的文件夹移动到一个基本代码中,下面是一个例子:
并使用节点
'theNemeOfYourScript'
.js project 1运行它。将一个脚本放到根目录中,并使目录结构如下所示:
使用imorts,就像你通常使用它们作为import * from 'src/assets/someFile'一样。