This commit is contained in:
Yuri Kuznetsov
2023-06-13 18:42:26 +03:00
parent 544e8e9d3f
commit 9099f84441
26 changed files with 574 additions and 291 deletions
+65 -4
View File
@@ -55,10 +55,7 @@ fs.readdirSync(originalLibDir)
fs.readdirSync(originalLibCrmDir)
.forEach(file => fs.unlinkSync(originalLibCrmDir + '/' + file));
/** @var {string[]} */
const libSrcList = buildUtils.getBundleLibList(libs);
let stripSourceMappingUrl = path => {
const stripSourceMappingUrl = path => {
/** @var {string} */
let originalContents = fs.readFileSync(path, {encoding: 'utf-8'});
@@ -73,11 +70,65 @@ let stripSourceMappingUrl = path => {
fs.writeFileSync(path, contents, {encoding: 'utf-8'});
}
const addLoadingSubject = (path, subject) => {
/** @var {string} */
let contents = fs.readFileSync(path, {encoding: 'utf-8'});
contents =
`Espo.loader.setContextId('${subject}');\n` +
contents + '\n' +
`Espo.loader.setContextId(null);\n`;
fs.writeFileSync(path, contents, {encoding: 'utf-8'});
}
const addSuppressAmd = path => {
/** @var {string} */
let contents = fs.readFileSync(path, {encoding: 'utf-8'});
contents =
`var _previousDefineAmd = define.amd; define.amd = false;\n` +
contents + '\n' +
`define.amd = _previousDefineAmd;\n`;
fs.writeFileSync(path, contents, {encoding: 'utf-8'});
}
/** @var {string[]} */
const libSrcList = buildUtils.getBundleLibList(libs);
let keyMap = {};
let suppressAmdMap = {};
libs.forEach(item => {
if (!item.key || !item.bundle || item.files) {
return;
}
if (item.suppressAmd) {
suppressAmdMap[item.src] = true;
return;
}
keyMap[item.src] = 'lib!' + item.key;
});
libSrcList.forEach(src => {
let dest = originalLibDir + '/' + src.split('/').slice(-1);
fs.copyFileSync(src, dest);
stripSourceMappingUrl(dest);
if (suppressAmdMap[src]) {
addSuppressAmd(dest);
}
let key = keyMap[src];
if (key) {
addLoadingSubject(dest, key);
}
});
buildUtils.getCopyLibDataList(libs)
@@ -85,4 +136,14 @@ buildUtils.getCopyLibDataList(libs)
.forEach(item => {
fs.copyFileSync(item.src, item.originalDest);
stripSourceMappingUrl(item.originalDest);
if (suppressAmdMap[item.src]) {
addSuppressAmd(item.originalDest);
}
let key = keyMap[item.src];
if (key) {
addLoadingSubject(item.originalDest, key);
}
});