-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathuploadMap.js
71 lines (62 loc) · 1.64 KB
/
uploadMap.js
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// 上传source-map
import { createReadStream, readdir } from 'fs';
import { resolve, extname } from 'path';
import Http from 'http';
import FormData from 'form-data';
const __dirname = resolve();
const directoryPath = resolve(__dirname, './dist/assets');
async function getMapFileName(directoryPath) {
return new Promise((resolve, reject) => {
readdir(directoryPath, (err, files) => {
if (err) {
console.log('Error getting directory information.');
reject('Error getting directory information.');
} else {
const mapFiles = files.filter(
(file) => extname(file).toLowerCase() === '.map',
);
if (mapFiles.length) {
resolve(mapFiles[0]);
}
}
});
});
}
// 获取map文件
const mapFile = await getMapFileName(directoryPath);
const form = new FormData();
form.append('file', createReadStream(`${directoryPath}/${mapFile}`));
function createHeader() {
return {
headers: form.getHeaders(),
hostname: '127.0.0.1', // 随机请求
method: 'POST',
path: '/catch/uploadfile',
port: 9999,
rejectUnauthorized: false,
};
}
function upload() {
return new Promise((resolve, reject) => {
const header = createHeader();
const req = Http.request(header, (res) => {
let str = '';
res.on('data', (buffer) => {
console.log('buffer');
str += buffer;
});
res.on('end', () => {
resolve(str);
});
});
form.pipe(req);
req.on('error', (error) => {
console.error(error);
});
form.on('end', () => {
req.end();
});
});
}
const res = await upload();
console.log('res', res);