-
Notifications
You must be signed in to change notification settings - Fork 158
/
Copy pathbuild.js
62 lines (60 loc) · 1.76 KB
/
build.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
const path = require('path');
const fs = require('fs');
const homeFileName = 'index.html';
let OriginFileDirectoryPath = path.resolve(__dirname, 'website');
let OriginFilePath = path.resolve(__dirname, homeFileName);
let CopyFilePath = path.resolve(__dirname, 'gh-pages');
let CopyFileDirectoryPath = path.resolve(__dirname, 'gh-pages/website');
if (!fs.existsSync(CopyFilePath)) {
fs.mkdir(CopyFilePath, err => {
// console.log(err)
});
}
const copyDirectoryOrFile = (oPath, cPath, isFile = false) => {
return new Promise((resolve, reject) => {
if (isFile) {
fs.readFile(oPath, 'utf-8', (err, fileData) => {
fs.writeFile(
'gh-pages/' + homeFileName,
fileData.toString(),
'utf8',
err => {
if (err) {
reject(new Error(err));
}
resolve();
}
);
});
} else {
if (!fs.existsSync(cPath)) {
fs.mkdir(cPath, err => {
// console.log(err)
});
}
fs.readdir(oPath, { withFileTypes: true }, (err, files) => {
if (err) {
reject(new Error(err));
}
files?.forEach(file => {
if (!file.isDirectory()) {
fs.copyFileSync(
path.resolve(oPath, file.name),
path.resolve(cPath, file.name)
);
} else {
fs.mkdir(path.resolve(cPath, file.name), err => {});
copyDirectoryOrFile(
path.resolve(oPath, file.name),
path.resolve(cPath, file.name)
);
}
resolve();
});
});
}
});
};
copyDirectoryOrFile(OriginFilePath, CopyFilePath, true).then(() => {
copyDirectoryOrFile(OriginFileDirectoryPath, CopyFileDirectoryPath, false);
});