| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- const BUILD_PATH = 'ui/assets/build';
- const MAIN_SCSS_PATH = 'ui/assets/css/admin.scss';
- const MODULES_PATH = '../../../node_modules';
- const compressor = require(`${MODULES_PATH}/node-minify`);
- const sass = require(`${MODULES_PATH}/node-sass`);
- const fs = require('fs');
- const path = require('path');
- /**
- * Functions
- */
- /**
- * Convert each line of text file into item array
- *
- * @param listFileName
- * @returns {string[]}
- */
- function LoadListIntoArray(listFileName) {
- // Split every line into array
- let listTemp = fs.readFileSync(listFileName).toString().split("\n");
- // Clean array:
- let listRet = listTemp.filter((x) => {
- // remove all comments start with ';' and empty lines ('\r')
- return x.replace(/^;.*/, '').replace('\r', '').length > 0
- }).map((d) => {
- return d.replace('\r', '')
- });
- return listRet;
- }
- /**
- * MAIN
- */
- if (!fs.existsSync(BUILD_PATH)) {
- console.log(`Create folder ${BUILD_PATH}`);
- fs.mkdirSync(BUILD_PATH);
- }
- let libList = LoadListIntoArray('build.js.list');
- let cssList = LoadListIntoArray('build.css.list');
- /**
- * CSS
- */
- // Compile SCSS
- console.log('Compiling SCSS');
- let buffer = sass.renderSync({file: MAIN_SCSS_PATH});
- // Write to file CSS
- fs.writeFileSync(`${BUILD_PATH}/admin.min.css`, buffer.css);
- //Concatenate all CSS in one MIN.CSS file
- console.log('Bundle CSS');
- compressor.minify({
- compressor: 'clean-css',
- input: cssList,
- output: `${BUILD_PATH}/bundle.min.css`
- }
- );
- /**
- * JS
- */
- // Minify+Concatenate JS files it in one file
- console.log('Bundle JS');
- compressor.minify({
- compressor: 'terser',
- input: libList,
- output: `${BUILD_PATH}/bundle.min.js`
- }
- );
- fs.unlinkSync(`${BUILD_PATH}/admin.min.css`);
- console.log('All done.');
|