为什么要使用文件配置 code push发布的命令。
1.如果有多个服务器对应多个应用时那么在一台电脑上就需要账号切换这时你每次切换时都会用到 先退出登录--》登录-----》再发布这样的繁琐过程,故此 将其统一使用编程一键搞定。
代码如下codepushexec.js
const {execSync} = require('child_process');
const codepushKey = '8ea081c67f491b5696df26b3c46eeeeb216cd3d2'; // 登录用的key
let params = process.argv;
let platform = params[2] || 'all';
let appName = params[3] || '';
let deployment = params[4] || 'Production';
console.log('platform===', platform);
console.log('appName===', appName);
console.log('deployment===', deployment);
if (appName === '') {
console.log('请输入app名称');
return;
}
const execPush = platform => {
console.log(` --------------${platform} start -------------------`);
try {
execSync('code-push logout', {stdio: [0, 1, 2]});
} catch (e) {
console.log(e.toString());
} finally {
//如果要使用自己的服务提地址那么需要修改下命令
//code-push login url --accessKey ${codepushKey} 这里的url就是私服务器。
execSync(
`code-push login --accessKey ${codepushKey}`,
{stdio: [0, 1, 2]},
);
}
try {
execSync(
`code-push release-react ${[
appName,
]} ${platform} --d ${deployment} --t 1.0.0 --dev false --m true`,
{stdio: [0, 1, 2]},
);
} catch (e) {
console.log(e.toString());
} finally {
console.log(`---------------${platform} end-----------------`);
}
};
if (platform === 'all') {
execPush('ios');
execPush('android');
} else {
execPush(platform);
}
直接拷贝 替换codepushKey(登录codepush的key)就可以使用了
放在与android工程同级别目录
![]()
查看更新脚本
//默认会更新android 和 ios
//deployment 默认为 Production
let params = process.argv;
let platform = params[2] || 'all';
let appName = params[3] || '';
let deployment = params[4] || 'Production';
console.log('platform===', platform);
console.log('appName===', appName);
console.log('deployment===', deployment);
if (appName === '') {
console.log('请输入app名称');
return;
}
...
if (platform === 'all') {
execPush('ios');
execPush('android');
} else {
execPush(platform);
}
使用方法:
1.执行
node .\codepushexec.js <platform> <appName> <deployment>
效果入下图

网友评论