-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathcdn.js
93 lines (84 loc) · 2.89 KB
/
cdn.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
const OSS = require('ali-oss');
const path = require('path');
const fs = require('fs');
const OSS_KEY_SECRET = process.argv.splice(2)[0];
const client = new OSS({
region: 'oss-cn-beijing',
accessKeyId: 'LTAIzLWlLvM1A0bd',
accessKeySecret: OSS_KEY_SECRET,
bucket: 'officespace2',
});
const jsDirPath = path.resolve(__dirname, './build/static/js')
const cssDirPath = path.resolve(__dirname, './build/static/css')
const OSS_URL = 'http://officespace2.oss-cn-beijing.aliyuncs.com/';
const findJsFile = () => {
return new Promise((resolve, reject) => {
fs.readdir(jsDirPath, (err, files) => {
if (err) {
reject(err);
} else {
const fileList = [];
files.forEach(fileName => {
const fileExtension = fileName.split('.').pop();
if (fileExtension === 'js') {
fileList.push(`/static/js/${fileName}`);
}
})
resolve(fileList)
}
})
})
}
const findCssFile = () => {
return new Promise((resolve, reject) => {
fs.readdir(cssDirPath, (err, files) => {
if (err) {
reject(err);
} else {
const fileList = [];
files.forEach(fileName => {
const fileExtension = fileName.split('.').pop();
if (fileExtension === 'css') {
fileList.push(`/static/css/${fileName}`);
}
})
resolve(fileList)
}
})
})
}
const findAllNeedUploadFileList = () => {
return Promise.all([findJsFile(), findCssFile()])
}
const htmlPath = path.resolve(__dirname, `./build/index.html`);
findAllNeedUploadFileList().then(res => {
let originFileList = [...res[0], ...res[1]]
const upLoadRequestList = [];
originFileList.forEach(filePath => {
const fileName = filePath.split('/').pop();
const filePathResolve = path.resolve(__dirname, `./build/.${filePath}`)
console.log(fileName)
console.log(filePath)
console.log(filePathResolve)
upLoadRequestList.push(client.put(fileName, filePathResolve))
})
Promise.all(upLoadRequestList).then(res => {
console.log(res);
const htmlData = fs.readFileSync(htmlPath, 'utf8')
let changeTtmlData = htmlData;
originFileList.forEach(item => {
if (htmlData.indexOf(item) !== -1) {
console.log('888')
changeTtmlData = changeTtmlData.replace(item, `${OSS_URL}${item.split('/').pop()}`)
}
})
console.log(changeTtmlData)
fs.writeFile(htmlPath, changeTtmlData, 'utf8', function (err) {
if (err) {
console.log(err)
} else {
console.log('wancheng')
}
});
})
})