UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

158 lines (145 loc) 4.97 kB
// 更新mtl在cdn地址中版本 const fs = require("fs") const axios = require("axios") const formData = require("form-data") // 上传公用mtl.min.js function putReleaseMtl(res) { const files = fs.readdirSync(res.path) files.forEach((item) => { // request("/mtl/beta/", fs.createReadStream(`${res.path}/${item}`)) console.log(item); if (item === "mtl.min.beta.js") { console.log(1); request("/mtl/beta/", fs.createReadStream(`${res.path}/mtl.min.beta.js`)) } }) } function putMtlMP(path, requestPath) { const files = fs.readdirSync(path) files.forEach((item) => { const sourcePath = `${path}/${item}` const stat = fs.statSync(sourcePath) if (stat.isDirectory()) { putMtl(sourcePath, `${requestPath}/${item}/`) } else { if (!fileNames.includes(item) && !item.includes(".js.map") && !item.includes(".txt")) { request(requestPath, fs.createReadStream(sourcePath)) } } }) } // 上传 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) console.log(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版本/beta" const version = JSON.parse(data).version const fileName = `${mtlVersion}/${version}` if (!fs.existsSync(fileName)) { fs.mkdirSync(`${fileName}`) // 文件夹 } // 文件 const distPath = "./dist" const files = fs.readdirSync(distPath) files.forEach((item) => { if (item === "mtl.min.js") { fs.copyFileSync(`${distPath}/${item}`, `${fileName}/mtl.min.beta.js`) } }) callback({version, path: fileName}) } catch (error) { console.log("error message:", error) } } function makeFilesMP(callback) { try { // 获取版本号 let data = fs.readFileSync("./package.json", "utf-8") const version = JSON.parse(data).version // 指定文件生成路径. let mtlVersion = "../mtl版本/beta" const fileName = `${mtlVersion}/${version}` // 判断文件夹是否存在 if (!fs.existsSync(fileName)) { fs.mkdirSync(`${fileName}`, {recursive: true}) // 文件夹 } // dist 产物 copy 到指定目录 const distPath = "./dist" const files = fs.readdirSync(distPath) files.forEach((item) => { if (!fileNames.includes(item) && !item.includes(".js.map")) { const subPath = `${distPath}/${item}` const targetPath = `${fileName}/${item}` const stat = fs.statSync(subPath) if (stat.isDirectory(subPath)) { if (!fs.existsSync(targetPath)) { fs.mkdirSync(targetPath) } const subFiles = fs.readdirSync(subPath) subFiles.forEach((subItem) => { if (!subItem.includes(".js.map")) { fs.copyFileSync(`${subPath}/${subItem}`, `${targetPath}/${subItem}`) } }) } else { fs.copyFileSync(subPath, `${fileName}/${item}`) } } }) 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) { // putReleaseMtl(res) // }) makeFilesMP(function (res) { putMtlMP(res.path, "/mtl/beta/cdn/") })