UNPKG

json-object-editor

Version:

JOE the Json Object Editor | Platform Edition

61 lines (56 loc) 1.9 kB
// build.js const concat = require('concat'); const terser = require('terser'); const CleanCSS = require('clean-css'); const fs = require('fs-extra'); const pkg = require('./package.json'); const banner = `/* -------------------------------------------------------- * * ${pkg.projectName || pkg.name} - v${pkg.version} * Created by: ${(pkg.author && pkg.author.name) || pkg.author} * * -------------------------------------------------------- */\n`; async function buildCSS() { // Concatenate CSS files const cssFiles = [ "css/leaflet.css", "css/esri-leaflet-geocoder.css", "css/joe-styles.css", "css/jquery-ui.min.css", "css/jquery.timepicker.min.css", "css/variants/style-variant1.css", "css/joe-print.css" ]; await concat(cssFiles, 'css/joe.css'); // Add banner let css = fs.readFileSync('css/joe.css', 'utf8'); css = banner + css; fs.writeFileSync('css/joe.css', css, 'utf8'); // Minify const minified = new CleanCSS().minify(css); fs.writeFileSync('css/joe.min.css', minified.styles, 'utf8'); } async function buildJS() { // Concatenate JS files const jsFiles = [ "js/JsonObjectEditor.jquery.craydent.js", "js/leaflet.js", "js/esri-leaflet-geocoder.js", "js/zebra_datepicker.196.min.js", "js/jquery.timepicker.min.js" ]; await concat(jsFiles, 'js/joe.js'); // Add banner let js = fs.readFileSync('js/joe.js', 'utf8'); js = banner + js; fs.writeFileSync('js/joe.js', js, 'utf8'); // Minify const minified = await terser.minify(js, { mangle: false, compress: true }); fs.writeFileSync('js/joe.min.js', minified.code, 'utf8'); } async function main() { await buildCSS(); await buildJS(); console.log('Build complete.'); } main();