cheers-mp-service
Version:
提供插件化的零配置小程序脚手架服务
89 lines (82 loc) • 1.92 kB
JavaScript
const axios = require("axios").default;
const fs = require("fs-extra");
const path = require("path");
const os = require("os");
const { error } = require("../utils/logger");
const portFilePath = path.join(
os.homedir(),
os.platform() === "win32"
? "/AppData/Local/微信开发者工具/User Data/Default/.ide"
: "/Library/Application Support/微信开发者工具/Default/.ide"
);
let port;
try {
port = fs.readFileSync(portFilePath, "utf-8");
} catch (err) {
error("请打开“小程序开发者工具”,依次点击顶部菜单的“设置”==> “安全设置”==> “服务端口”勾选“开启”");
process.exit(1);
}
const request = axios.create({
baseURL: `http://127.0.0.1:${port}`,
});
request.interceptors.response.use(
(response) => {
return response.data;
},
(err) => {
if (err.code === "ECONNREFUSED") {
error("连接开发者工具服务失败,请先打开微信开发者工具");
} else {
error(JSON.stringify(err.response.data));
}
return Promise.reject(err);
}
);
/**
* 打开开发者工具或者项目
* @param {string} projectpath
*/
const openToolOrProject = (projectpath) =>
request({
method: "GET",
url: "/open",
params: {
projectpath,
},
});
/**
* 构建npm
* @param {string} projectpath 上传指定路径中的项目
*/
const buildNPM = (projectpath) => {
return request({
method: "GET",
url: "/buildnpm",
params: {
projectpath,
},
});
};
/**
* 上传代码
* @param {string} projectpath 上传指定路径中的项目
* @param {string} version
* @param {string} desc
*/
const upload = (projectpath, version, desc, infooutput) => {
return request({
method: "GET",
url: "/upload",
params: {
projectpath,
version,
desc,
infooutput,
},
});
};
module.exports = {
openToolOrProject,
buildNPM,
upload,
};