Commit 04f73af2 authored by 谢卓城's avatar 谢卓城

新增:1.小程序上传脚本.

parent c49d36b0
const readline = require("readline");
const cp = require("child_process");
// cli和项目路径配置
const CONFIG = {
CLI_PATH:
process.platform == "win32"
? "F:/微信web开发者工具/cli.bat"
: "/Applications/wechatwebdevtools.app/Contents/MacOS/cli",
PROJECT_PATH: __dirname + "/dist",
};
// 帮助
// cli -h
function help() {
const cmd = ` -h`;
cp.execFile(CONFIG.CLI_PATH, cmd.split(" "), (error, stdout) => {
console.log(stdout);
});
}
// 启动IDE
function init() {
return new Promise((resolve, reject) => {
cp.execFile(
CONFIG.CLI_PATH,
["--port 3000 -o", CONFIG.PROJECT_PATH],
(error, stdout) => {
if (error) {
console.log("启动IDE失败,请检查配置");
reject(error);
}
console.log(stdout);
resolve();
}
);
});
}
// 输入项目备注和版本号
function input() {
return new Promise((resolve, reject) => {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question(
"请输入项目备注和版本号,以空格分隔(例如:测试 1.0.0): \n",
(answer) => {
rl.close();
if (answer.includes(" ")) {
const [comment, version] = answer.split(" ");
console.log("-------");
console.log("版本号:", version, ",项目备注:", comment);
resolve({ version, comment });
} else {
resolve(input());
}
}
);
});
}
// 上传体验版
function upload(version, comment) {
return new Promise((resolve, reject) => {
// const cmd = ` upload --project ${CONFIG.PROJECT_PATH} -v ${version} -d ${comment} -i ${__dirname}/result.json`
const cmd = ` -u ${version}@${CONFIG.PROJECT_PATH} --upload-desc ${comment}`;
cp.execFile(CONFIG.CLI_PATH, cmd.split(" "), (error, stdout) => {
if (error) {
console.log("上传失败,请重试");
reject(error);
} else {
console.log(stdout);
console.log("上传完成");
resolve(`小程序上传完成:${comment} - 版本号:${version}`);
}
});
});
}
// 提交git信息并加标签
async function gitCommit(version, commit, isUpdateTag = true) {
cp.execSync("git add .");
return new Promise((resolve, reject) => {
cp.exec(`git tag`, (err, stdout) => {
if (err) {
reject(err);
} else {
const tags = stdout.split("\n");
resolve(tags[tags.length - 2]);
}
});
})
.then((tag) => {
if (tag) {
const oldTag = tag;
const [a, b, c] = oldTag.split(".");
const newTag = isUpdateTag
? version && version.length
? version
: [a, b, Number(c) + 1 || 0].join(".")
: oldTag;
console.log(
"旧版本号:",
oldTag + ",提交版本号:",
newTag,
",提交信息:",
commit
);
return new Promise((resolve, reject) => {
cp.exec(`git commit -m ${commit}`, (err, stdout) => {
if (err) {
console.log(err);
reject(err);
} else {
// if (isUpdateTag) {
// cp.execSync(`git tag ${newTag}`)
// }
resolve(newTag);
}
});
});
}
})
.catch((err) => {
console.log("gitcommit 错误");
throw err;
});
}
async function main() {
try {
await init();
const { version, comment } = await input();
// const newTag = await gitCommit(version, comment)
const msg = await upload(version, comment);
console.log("-------");
console.log(msg);
console.log("-------");
console.log("推送完成");
} catch (e) {
console.log("e", e);
}
}
main();
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
"lint": "eslint src --fix", "lint": "eslint src --fix",
"devBuild": "gulp devBuild", "devBuild": "gulp devBuild",
"build": "gulp prod", "build": "gulp prod",
"update": "node ./cli-upload.js",
"build:ci": "sh ./package/miniprogramnpm.sh", "build:ci": "sh ./package/miniprogramnpm.sh",
"dev:package": "sh ./package/package.sh -d 1 -u 0 -p", "dev:package": "sh ./package/package.sh -d 1 -u 0 -p",
"package": "sh ./package/package.sh -d 0 -u 0 -p", "package": "sh ./package/package.sh -d 0 -u 0 -p",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment