This commit is contained in:
Yuri Kuznetsov
2023-11-10 16:59:41 +02:00
parent 93a0a53aab
commit 5abdb2339d
4 changed files with 51 additions and 52 deletions
+29 -30
View File
@@ -45,23 +45,23 @@ module.exports = grunt => {
const originalLibDir = 'client/lib/original';
let libsBundleFileList = [
const libsBundleFileList = [
'client/src/namespace.js',
'client/src/loader.js',
...buildUtils.getPreparedBundleLibList(libs),
];
let bundleFileMap = {'client/lib/espo.js': libsBundleFileList};
const bundleFileMap = {'client/lib/espo.js': libsBundleFileList};
for (let name in bundleConfig.chunks) {
let namePart = 'espo-' + name;
for (const name in bundleConfig.chunks) {
const namePart = 'espo-' + name;
bundleFileMap[`client/lib/${namePart}.js`] = originalLibDir + `/${namePart}.js`
}
let copyJsFileList = buildUtils.getCopyLibDataList(libs);
const copyJsFileList = buildUtils.getCopyLibDataList(libs);
let minifyLibFileList = copyJsFileList
const minifyLibFileList = copyJsFileList
.filter(item => item.minify)
.map(item => {
return {
@@ -70,21 +70,21 @@ module.exports = grunt => {
};
});
let currentPath = path.dirname(fs.realpathSync(__filename));
const currentPath = path.dirname(fs.realpathSync(__filename));
let themeList = [];
const themeList = [];
fs.readdirSync('application/Espo/Resources/metadata/themes').forEach(file => {
themeList.push(file.substring(0, file.length - 5));
});
let cssminFilesData = {};
let lessData = {};
const cssminFilesData = {};
const lessData = {};
themeList.forEach(theme => {
let name = buildUtils.camelCaseToHyphen(theme);
const name = buildUtils.camelCaseToHyphen(theme);
let files = {};
const files = {};
files['client/css/espo/'+name+'.css'] = 'frontend/less/'+name+'/main.less';
files['client/css/espo/'+name+'-iframe.css'] = 'frontend/less/'+name+'/iframe/main.less';
@@ -273,20 +273,20 @@ module.exports = grunt => {
fs.mkdirSync(originalLibDir);
}
let file = originalLibDir + `/${name}.js`;
const file = originalLibDir + `/${name}.js`;
fs.writeFileSync(file, contents, 'utf8');
};
grunt.registerTask('bundle', () => {
let bundler = new Bundler(bundleConfig, libs);
const bundler = new Bundler(bundleConfig, libs);
let result = bundler.bundle();
const result = bundler.bundle();
for (let name in result) {
for (const name in result) {
let contents = result[name];
let key = 'espo-' + name;
const key = 'espo-' + name;
if (name === 'main') {
contents += '\n' + (new LayoutTypeBundler()).bundle();
@@ -297,7 +297,7 @@ module.exports = grunt => {
});
grunt.registerTask('bundle-templates', () => {
let templateBundler = new TemplateBundler({
const templateBundler = new TemplateBundler({
dirs: [
'client/res/templates',
'client/modules/crm/res/templates',
@@ -328,9 +328,9 @@ module.exports = grunt => {
});
grunt.registerTask('chmod-multiple', () => {
let dirPath = 'build/EspoCRM-' + pkg.version;
const dirPath = 'build/EspoCRM-' + pkg.version;
let fileList = [
const fileList = [
{
name: '*.php',
},
@@ -363,7 +363,7 @@ module.exports = grunt => {
},
];
let dirReadableList = [
const dirReadableList = [
'public/install',
'public/portal',
'public/api',
@@ -372,7 +372,7 @@ module.exports = grunt => {
'.',
];
let dirWritableList = [
const dirWritableList = [
'data',
'custom',
'custom/Espo',
@@ -383,8 +383,8 @@ module.exports = grunt => {
];
fileList.forEach(item => {
let path = item.folder || '.';
let name = item.name;
const path = item.folder || '.';
const name = item.name;
cp.execSync(
`find ${path} -type f -iname "${name}" -exec chmod 644 {} +`,
@@ -447,23 +447,22 @@ module.exports = grunt => {
grunt.registerTask('zip', function () { // Don't change to arrow-function.
const archiver = require('archiver');
let resolve = this.async();
const resolve = this.async();
let folder = 'EspoCRM-' + pkg.version;
let zipPath = 'build/' + folder +'.zip';
const folder = 'EspoCRM-' + pkg.version;
const zipPath = 'build/' + folder + '.zip';
if (fs.existsSync(zipPath)) {
fs.unlinkSync(zipPath);
}
let archive = archiver('zip');
const archive = archiver('zip');
archive.on('error', err => {
grunt.fail.warn(err);
});
let zipOutput = fs.createWriteStream(zipPath);
const zipOutput = fs.createWriteStream(zipPath);
zipOutput.on('close', () => {
console.log("EspoCRM package has been built.");
+7 -7
View File
@@ -26,9 +26,9 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
let BuildUtils = {
const BuildUtils = {
getBundleLibList: function(libs) {
let list = [];
const list = [];
libs.forEach(item => {
if (!item.bundle) {
@@ -57,7 +57,7 @@ let BuildUtils = {
},
destToOriginalDest: function (dest) {
let path = dest.split('/');
const path = dest.split('/');
return path.slice(0, -1)
.concat('original')
@@ -75,19 +75,19 @@ let BuildUtils = {
* }[]}
*/
getCopyLibDataList: function (libs) {
let list = [];
const list = [];
/**
* @param {Object} item
* @return {string}
*/
let getItemDest = item => item.dest || 'client/lib/' + item.src.split('/').pop();
const getItemDest = item => item.dest || 'client/lib/' + item.src.split('/').pop();
/**
* @param {Object} item
* @return {string}
*/
let getItemOriginalDest = item => {
const getItemOriginalDest = item => {
return BuildUtils.destToOriginalDest(
getItemDest(item)
);
@@ -98,7 +98,7 @@ let BuildUtils = {
return;
}
let minify = !!item.minify;
const minify = !!item.minify;
if (item.files) {
item.files.forEach(item => {
+10 -10
View File
@@ -41,9 +41,9 @@ const originalLibCrmDir = './client/modules/crm/lib/original';
.filter(path => !fs.existsSync(path))
.forEach(path => fs.mkdirSync(path));
let bundleFiles = Object.keys(bundleConfig.chunks)
const bundleFiles = Object.keys(bundleConfig.chunks)
.map(name => {
let namePart = 'espo-' + name;
const namePart = 'espo-' + name;
return namePart + '.js';
});
@@ -57,15 +57,15 @@ fs.readdirSync(originalLibCrmDir)
const stripSourceMappingUrl = path => {
/** @var {string} */
let originalContents = fs.readFileSync(path, {encoding: 'utf-8'});
const originalContents = fs.readFileSync(path, {encoding: 'utf-8'});
let re = /^\/\/# sourceMappingURL.*/gm;
const re = /^\/\/# sourceMappingURL.*/gm;
if (!originalContents.match(re)) {
return;
}
let contents = originalContents.replaceAll(re, '');
const contents = originalContents.replaceAll(re, '');
fs.writeFileSync(path, contents, {encoding: 'utf-8'});
}
@@ -97,8 +97,8 @@ const addSuppressAmd = path => {
/** @var {string[]} */
const libSrcList = buildUtils.getBundleLibList(libs);
let amdIdMap = {};
let suppressAmdMap = {};
const amdIdMap = {};
const suppressAmdMap = {};
libs.forEach(item => {
if (!item.amdId || !item.bundle || item.files) {
@@ -115,7 +115,7 @@ libs.forEach(item => {
});
libSrcList.forEach(src => {
let dest = originalLibDir + '/' + src.split('/').slice(-1);
const dest = originalLibDir + '/' + src.split('/').slice(-1);
fs.copyFileSync(src, dest);
stripSourceMappingUrl(dest);
@@ -124,7 +124,7 @@ libSrcList.forEach(src => {
addSuppressAmd(dest);
}
let key = amdIdMap[src];
const key = amdIdMap[src];
if (key) {
addLoadingSubject(dest, key);
@@ -141,7 +141,7 @@ buildUtils.getCopyLibDataList(libs)
addSuppressAmd(item.originalDest);
}
let key = amdIdMap[item.src];
const key = amdIdMap[item.src];
if (key) {
addLoadingSubject(item.originalDest, key);
+5 -5
View File
@@ -31,20 +31,20 @@ const buildUtils = require('../build-utils');
const libs = require('./../../frontend/libs.json');
let stripSourceMappingUrl = path => {
const stripSourceMappingUrl = path => {
/** @var {string} */
let originalContents = fs.readFileSync(path, {encoding: 'utf-8'});
const originalContents = fs.readFileSync(path, {encoding: 'utf-8'});
let re = /\/\/# sourceMappingURL.*/g;
const re = /\/\/# sourceMappingURL.*/g;
if (!originalContents.match(re)) {
return;
}
let contents = originalContents.replaceAll(re, '');
const contents = originalContents.replaceAll(re, '');
fs.writeFileSync(path, contents, {encoding: 'utf-8'});
}
};
buildUtils.getCopyLibDataList(libs)
.filter(item => !item.minify)