-
Notifications
You must be signed in to change notification settings - Fork 5
/
relativize_js.cjs
35 lines (28 loc) · 932 Bytes
/
relativize_js.cjs
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
const fs = require('fs');
const path = require('path');
const { traverse, slash } = require('./lib.cjs');
function relativize_js(assets) {
// get all js
const files = traverse(assets).filter(
(file) => file.name.endsWith('.js') || file.name.endsWith('.mjs')
);
for (const file of files) {
const filePath = path.join(assets, file.relativePath);
const fileContent = fs.readFileSync(filePath).toString();
const reFetch = new RegExp('fetch\\(`\\/', 'g');
const reHrefAttr = new RegExp('"href","\\/', 'g');
const reHrefAttr2 = new RegExp('"href", "\\/', 'g');
const newFileContent = fileContent
.replace(reFetch, 'fetch(`${window.BASE}/')
.replace(reHrefAttr, '"href",window.BASE + "/')
.replace(reHrefAttr2, '"href", window.BASE + "/');
fs.writeFileSync(filePath, newFileContent);
}
}
module.exports = {
relativize_js
};
if (require.main === module) {
// TODO: argument
relativize_js('build');
}