UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

133 lines (118 loc) 3.89 kB
// 更新mtl在cdn地址中版本 const fs = require("fs") const axios = require("axios") const formData = require("form-data") // 上传mtl.min.js 备份文件. function putMtl(res) { const files = fs.readdirSync(res.path) files.forEach((item) => { if (!item.includes(".js.map") && !item.includes(".txt")) { request(`/mtl/${res.version}/`, fs.createReadStream(`${res.path}/${item}`)) } }) } // 上传公用mtl.min.js function putReleaseMtl(res) { const files = fs.readdirSync(res.path) files.forEach((item) => { // map文件不上传 if (!item.includes(".js.map") && !item.includes(".txt")) { request("/mtl/release/", fs.createReadStream(`${res.path}/${item}`)) } }) } // 上传mtlVersion.js function putMtlVersion(res) { request("/mtl/", fs.createReadStream(`${res.path}/mtlVersion.js`)) } // 上传 async function getHeaders(form) { return new Promise((resolve, reject) => { form.getLength((err, length) => { if (err) reject(err) const headers = Object.assign({ "Content-Length": length }, form.getHeaders()) resolve(headers) }) }) } async function request(path, file) { let format = new formData() format.append("AccessKey", AccessKey) format.append("AccessSecret", AccessSecret) format.append("filePath", path) format.append("file", file) const headers = await getHeaders(format) axios({ url: "ht" + "tps://package.yonyou" + "cloud.com/npm/foreign/upload", data: format, method: "post", headers, }).then(function (res) { console.log("000000", res.data) }).catch(function (err) { console.log("00-0--", err) }) } // 创建文件 function makeFiles(callback) { try { let data = fs.readFileSync("./package.json", "utf-8") let mtlVersion = "../mtl版本/release" const version = JSON.parse(data).version const fileName = `${mtlVersion}/${version}` if (!fs.existsSync(fileName)) { fs.mkdirSync(`${fileName}`, { recursive: true }) // 文件夹 } // 文件 const distPath = "./dist" const files = fs.readdirSync(distPath) files.forEach((item) => { if (!item.includes(".js.map") && !item.includes(".txt")) { fs.copyFileSync(`${distPath}/${item}`, `${fileName}/${item}`) } }) fs.writeFileSync( `${fileName}/mtlVersion.js`, JSON.stringify({ version: version, path: "ht" + "tps://design.yonyou" + "cloud.com/library/mtl/release/mtl.min.js", }) ) // 发送邮件使用 const email = `${mtlVersion}/email` if (!fs.existsSync(email)) { fs.mkdirSync(email) // 文件夹 } const allPlatform = `${email}/allPlatform` if (!fs.existsSync(allPlatform)) { fs.mkdirSync(allPlatform) } fs.copyFileSync("./dist/mtl.min.js", `${allPlatform}/mtl.min.js`) fs.copyFileSync("./dist/mtl.min.js", `${allPlatform}/mtl.min.bundle`) callback({ version, path: fileName }) } catch (error) { console.log("error message:", error) } } /* * 需要添加AccessKey 和 AccessSecret。 * npm run upload AccessKey=xxx AccessSecret=xxx */ // const arguments = process.argv.splice(2) let AccessKey = "" let AccessSecret = "" if (arguments && Array.isArray(arguments)) { arguments.map((item) => { if (item.includes("AccessKey")) { AccessKey = item.replace("AccessKey=", "") } else if (item.includes("AccessSecret")) { AccessSecret = item.replace("AccessSecret=", "") } }) } makeFiles(function (res) { putMtl(res) putReleaseMtl(res) putMtlVersion(res) })