-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.js
More file actions
32 lines (30 loc) · 1.15 KB
/
install.js
File metadata and controls
32 lines (30 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const compressing = require('compressing');
const axios = require('axios');
const fs = require('fs');
async function downloadAndDecompress(url, extraPath) {
const filename = url.split('/').pop() ?? 'jssdk.tar.gz'
const downloadFile = `${__dirname}/${filename}`
if (!fs.existsSync(downloadFile)) {
const response = await axios({
url,
method: 'GET',
responseType: 'stream',
});
const writer = fs.createWriteStream(downloadFile);
response.data.pipe(writer);
await new Promise((resolve, reject) => {
writer.on('finish', resolve);
writer.on('error', reject);
});
console.log(`文件下载完成: ${downloadFile}`);
} else {
console.log(`文件已经存在: ${downloadFile}`);
}
await compressing.tgz.uncompress(downloadFile, extraPath)
fs.unlinkSync(downloadFile)
console.log(`解压完成: ${extraPath}`)
}
const target = `${__dirname}/assets/jssdk`
const version = process.argv[2] ?? '6.13.0'
const download = `https://github.com/baidu/amis/releases/download/${version}/jssdk.tar.gz`
downloadAndDecompress(download, target)