UNPKG

phonon

Version:

Phonon is an open source HTML, CSS and JavaScript agnostic framework that allows to create a website or a hybrid Web app.

68 lines (56 loc) 1.66 kB
const typescript = require('rollup-plugin-typescript2'); const path = require('path'); const rollup = require('rollup'); const fs = require('fs'); const UglifyJS = require('uglify-js'); const banner = require('./banner'); const format = 'umd'; const plugins = [ typescript({ tsconfigOverride: { compilerOptions: { declaration: false, // make sure to avoid components declaration }, }, }), ]; // global Util const Util = path.resolve(__dirname, '../../src/js/util.ts'); // package const fileName = 'phonon'; const fileSrc = '../../src/js/phonon.ts'; const fileDest = `${fileName}.js` const fileDestMin = `${fileName}.min.js` console.log(`Building ${fileName} package...`); (async () => { try { const file = path.resolve(__dirname, `../../dist/js/${fileDest}`); const fileMin = path.resolve(__dirname, `../../dist/js/${fileDestMin}`); const fileMinMap = path.resolve(__dirname, `../../dist/js/${fileDestMin}.map`); const bundle = await rollup.rollup({ input: path.resolve(__dirname, fileSrc), plugins, }); await bundle.write({ banner: banner(), file, format, name: 'phonon', name: fileName, sourcemap: true, }); const result = UglifyJS.minify(fs.readFileSync(file, 'utf8'), { sourceMap: { filename: fileDestMin, url: `${fileDestMin}.map`, }, }); if (result.error) throw result.error; // minified file fs.writeFileSync(fileMin, result.code, 'utf8'); // source map fs.writeFileSync(fileMinMap, result.map, 'utf8'); } catch(err) { console.error(`${fileName}: ${err}`); } })();