我正在开发支持iOS和Android的Phonegap应用程序(使用AngularJs + Bootstrap)。到目前为止,我们必须维护两个代码库,但功能相同,只有很少的差异,如下所示。
前:
PhoneGap App X:拨打http://abc/xappinfo weservice,使用x_icon_app.png (这必须为iOS和Android构建,我没有问题)
PhoneGap App Y:致电http://xyz/yappinfo weservice,使用y_icon_app.png和其他UI元素进行移动皮肤 (这也必须为iOS和Android构建)
PhoneGap App X和Y都使用相同的代码进行业务逻辑。
我想为两个应用维护一个代码库,因为只有很少的差异。有什么办法可以实现这一目标或简化我的开发工作吗?
答案 0 :(得分:1)
我有类似的情况。我将所有app文件夹放在一个文件夹中,并将以下代码放在名为 persist.js 的根文件夹中的文件中。其目的是在所有不同的应用程序中保持文件更改,保持相同的路径。这是一本小手册,但有效...
var fs = require('fs');
var chalk = require('chalk');
var argv = require('minimist')(process.argv.slice(2));
var file = argv.f;
var apps = [
'app_folder_1',
'app_folder_2',
'app_folder_3',
'app_folder_4',
'app_folder_5',
];
if(file){
if (fs.existsSync(file)) {
console.log(chalk.blue('Found source file'));
var fileWithoutApp = file.substring(file.indexOf('/'));
apps.map(app => {
fs.writeFileSync(app + fileWithoutApp, fs.readFileSync(file));
console.log(chalk.green(`File copied to: ${app + fileWithoutApp}`))
});
} else {
console.log(chalk.red('File does not exist'));
}
} else {
console.log(chalk.red('No file specified'));
}
对任何项目文件夹中的文件进行更改后,只需从命令行调用以下命令:
node persist -f [relative path to your file that has changes]
这将持续改变所有项目。就像我说的,一点手册......但有效:)
答案 1 :(得分:0)
当你使用cordova或ionic + angularjs时,你可以编译两个设备的应用程序,这更简单,你喜欢并发症!