lib minify
This commit is contained in:
+29
-4
@@ -40,6 +40,13 @@ module.exports = grunt => {
|
||||
let jsFilesToBundle = getBundleLibList().concat(bundleConfig.jsFiles);
|
||||
let jsFilesToCopy = getCopyLibDataList();
|
||||
|
||||
let libFilesToMinify = jsFilesToCopy
|
||||
.filter(item => item.minify)
|
||||
.reduce((map, item) => (
|
||||
map[item.dest] = item.dest,
|
||||
map
|
||||
), {});
|
||||
|
||||
let currentPath = path.dirname(fs.realpathSync(__filename));
|
||||
|
||||
let themeList = [];
|
||||
@@ -111,12 +118,25 @@ module.exports = grunt => {
|
||||
|
||||
uglify: {
|
||||
options: {
|
||||
mangle: false,
|
||||
mangle: true,
|
||||
sourceMap: true,
|
||||
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
|
||||
output: {
|
||||
comments: /^!/,
|
||||
},
|
||||
},
|
||||
bundle: {
|
||||
options: {
|
||||
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
|
||||
},
|
||||
files: {
|
||||
'build/tmp/client/espo.min.js': jsFilesToBundle,
|
||||
},
|
||||
},
|
||||
lib: {
|
||||
files: libFilesToMinify,
|
||||
},
|
||||
'build/tmp/client/espo.min.js': jsFilesToBundle,
|
||||
},
|
||||
|
||||
copy: {
|
||||
options: {
|
||||
mode: true,
|
||||
@@ -333,11 +353,12 @@ module.exports = grunt => {
|
||||
'mkdir:tmp',
|
||||
'less',
|
||||
'cssmin',
|
||||
'uglify',
|
||||
'uglify:bundle',
|
||||
'copy:frontendFolders',
|
||||
'copy:frontendLib',
|
||||
'copy:frontendCommitedLib',
|
||||
'copy:backend',
|
||||
'uglify:lib',
|
||||
'replace',
|
||||
'clean:beforeFinal',
|
||||
'copy:final',
|
||||
@@ -426,11 +447,14 @@ function getCopyLibDataList() {
|
||||
return;
|
||||
}
|
||||
|
||||
let minify = item.minify;
|
||||
|
||||
if (item.files) {
|
||||
item.files.forEach(item => {
|
||||
list.push({
|
||||
src: item.src,
|
||||
dest: 'build/tmp/' + (item.dest || 'client/lib/' + item.src.split('/').pop()),
|
||||
minify: minify,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -444,6 +468,7 @@ function getCopyLibDataList() {
|
||||
list.push({
|
||||
src: item.src,
|
||||
dest: 'build/tmp/' + (item.dest || 'client/lib/' + item.src.split('/').pop()),
|
||||
minify: minify,
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
+14
-7
@@ -102,25 +102,30 @@
|
||||
"src": "node_modules/cropper/dist/cropper.js"
|
||||
},
|
||||
{
|
||||
"src": "node_modules/cronstrue/dist/cronstrue-i18n.js"
|
||||
"src": "node_modules/cronstrue/dist/cronstrue-i18n.js",
|
||||
"minify": true
|
||||
},
|
||||
{
|
||||
"src": "node_modules/exif-js/exif.js"
|
||||
"src": "node_modules/exif-js/exif.js",
|
||||
"minify": true
|
||||
},
|
||||
{
|
||||
"src": "node_modules/jsbarcode/dist/JsBarcode.all.js"
|
||||
"src": "node_modules/jsbarcode/dist/JsBarcode.all.js",
|
||||
"minify": true
|
||||
},
|
||||
{
|
||||
"src": "node_modules/qrcodejs/qrcode.js"
|
||||
},
|
||||
{
|
||||
"src": "node_modules/summernote/dist/summernote.js"
|
||||
"src": "node_modules/summernote/dist/summernote.js",
|
||||
"minify": true
|
||||
},
|
||||
{
|
||||
"src": "node_modules/espo-funnel-chart/build/espo-funnel-chart.js"
|
||||
},
|
||||
{
|
||||
"src": "node_modules/flotr2/flotr2.js"
|
||||
"src": "node_modules/flotr2/flotr2.js",
|
||||
"minify": true
|
||||
},
|
||||
{
|
||||
"name": "ace-builds",
|
||||
@@ -141,10 +146,12 @@
|
||||
},
|
||||
{
|
||||
"src": "node_modules/fullcalendar/dist/fullcalendar.js",
|
||||
"dest": "client/modules/crm/lib/fullcalendar.js"
|
||||
"dest": "client/modules/crm/lib/fullcalendar.js",
|
||||
"minify": true
|
||||
},
|
||||
{
|
||||
"src": "node_modules/vis/dist/vis.js",
|
||||
"dest": "client/modules/crm/lib/vis.js"
|
||||
"dest": "client/modules/crm/lib/vis.js",
|
||||
"minify": true
|
||||
}
|
||||
]
|
||||
|
||||
+58
-26
@@ -256,8 +256,6 @@ class Diff
|
||||
fileList.push(file);
|
||||
});
|
||||
|
||||
console.log(fileList);
|
||||
|
||||
libData.filesToCopy.forEach(item => fileList.push(item));
|
||||
|
||||
fileList.push('client/espo.min.js');
|
||||
@@ -514,15 +512,16 @@ class Diff
|
||||
let libOldDataList = [];
|
||||
|
||||
if (~this._getVersionAllFileList(versionFrom).indexOf('frontend/libs.json')) {
|
||||
libOldDataList = JSON.parse(
|
||||
cp.execSync("git show " + commitHash + ":frontend/libs.json").toString() || '[]'
|
||||
);
|
||||
libOldDataList = JSON
|
||||
.parse(
|
||||
cp.execSync("git show " + commitHash + ":frontend/libs.json").toString() || '[]'
|
||||
)
|
||||
.filter(item => !item.bundle);
|
||||
|
||||
}
|
||||
|
||||
let changedLibList = [];
|
||||
let currentLibList = [];
|
||||
|
||||
let libNewDataList = require(this.espoPath + '/frontend/libs.json');
|
||||
let libNewDataList = require(this.espoPath + '/frontend/libs.json')
|
||||
.filter(item => !item.bundle);
|
||||
|
||||
let resolveItemDest = item =>
|
||||
item.dest || 'client/lib/' + item.src.split('/').pop();
|
||||
@@ -545,46 +544,71 @@ class Diff
|
||||
return name;
|
||||
};
|
||||
|
||||
libNewDataList.forEach(item => {
|
||||
if (item.bundle) {
|
||||
return;
|
||||
}
|
||||
let changedLibList = [];
|
||||
let currentLibList = [];
|
||||
|
||||
let toMinifyOldMap = {};
|
||||
|
||||
libOldDataList.forEach(item => {
|
||||
let name = resolveItemName(item);
|
||||
|
||||
toMinifyOldMap[name] = item.minify || false;
|
||||
});
|
||||
|
||||
libNewDataList.forEach(item => {
|
||||
let name = resolveItemName(item);
|
||||
|
||||
let minify = item.minify || false;
|
||||
|
||||
if (!depsNew[name]) {
|
||||
throw new Error("Not installed lib '" + name + "' `frontend/libs.json`.");
|
||||
}
|
||||
|
||||
currentLibList.push(name);
|
||||
|
||||
let isAdded = !(name in depsOld);
|
||||
|
||||
let versionNew = depsNew[name].version || null;
|
||||
let versionOld = (depsOld[name] || {}).version || null;
|
||||
|
||||
if (versionNew !== versionOld) {
|
||||
changedLibList.push(name);
|
||||
let wasMinified = (toMinifyOldMap || {})[name];
|
||||
|
||||
if (item.files) {
|
||||
if (
|
||||
!isAdded &&
|
||||
versionNew === versionOld &&
|
||||
minify === wasMinified
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
changedLibList.push(name);
|
||||
|
||||
if (item.files) {
|
||||
item.files.forEach(item =>
|
||||
data.filesToCopy.push(resolveItemDest(item))
|
||||
);
|
||||
|
||||
if (minify) {
|
||||
item.files.forEach(item =>
|
||||
data.filesToCopy.push(resolveItemDest(item))
|
||||
data.filesToCopy.push(resolveItemDest(item) + '.map')
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
data.filesToCopy.push(resolveItemDest(item));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
data.filesToCopy.push(resolveItemDest(item));
|
||||
|
||||
if (minify) {
|
||||
data.filesToCopy.push(resolveItemDest(item) + '.map');
|
||||
}
|
||||
});
|
||||
|
||||
libOldDataList.forEach(item => {
|
||||
if (item.bundle) {
|
||||
return;
|
||||
}
|
||||
|
||||
let name = resolveItemName(item);
|
||||
|
||||
let minify = item.minify || false;
|
||||
|
||||
let toRemove = false;
|
||||
|
||||
if (
|
||||
@@ -603,12 +627,20 @@ class Diff
|
||||
data.filesToDelete.push(resolveItemDest(item))
|
||||
);
|
||||
|
||||
if (minify) {
|
||||
item.files.forEach(item =>
|
||||
data.filesToDelete.push(resolveItemDest(item) + '.map')
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
data.filesToDelete.push(resolveItemDest(item));
|
||||
|
||||
return;
|
||||
if (minify) {
|
||||
data.filesToDelete.push(resolveItemDest(item) + '.map');
|
||||
}
|
||||
});
|
||||
|
||||
return data;
|
||||
|
||||
Reference in New Issue
Block a user