'use strict'; const fs = require('fs'); const fse = require('fs-extra'); const Bundler = require('parcel-bundler'); const options = { outDir: './dist', outFile: 'index.html', publicUrl: '/', watch: process.env.NODE_ENV !== 'production', cache: process.env.NODE_ENV !== 'production', cacheDir: '.cache', contentHash: false, minify: process.env.NODE_ENV === 'production', scopeHoist: false, target: 'browser', bundleNodeModules: false, https: true, logLevel: 3, hmr: false, hmrPort: 1235, sourceMaps: true, hmrHostname: '', detailedReport: false, autoInstall: true }; (async function() { let configPath = process.env.CONFIG_PATH || 'config.json'; if(!fs.existsSync(configPath)) throw `[Error] (Mandatory) Missing ${configPath} file`; console.log(`Using ${configPath} config file`); let config = JSON.parse(fs.readFileSync(configPath)); if(!config.clientName) throw `[Error] (Mandatory) Missing clientName on ${configPath}`; if(!config.clientLogo) throw `[Error] (Mandatory) Missing clientLogo on ${configPath}`; let manifest = { "lang": "fr", "dir": "ltr", "name": config.clientName, "description": `Hubl of ${config.clientName}`, "short_name": config.clientName, "icons": [{ "src": config.clientLogo, "purpose": "any" }, { "src": "/images/hubl-icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/images/hubl-icon-512.png", "sizes": "512x512", "type": "image/png" }], "start_url": ".", "display": "standalone", "orientation": "portrait", "background_color": "#fff", 'theme_color': "white" } await fse.writeJSON('./src/manifest.webmanifest', manifest) console.log(`Created manifest for ${config.clientName}`); await fse.copy("./src/locales", "./dist/locales") console.log(`Copied locales to dist folder`); await fse.copy("./src/components", "./dist/components") console.log(`Copied components to dist folder`); const bundler = new Bundler('./src/index.pug', options); bundler.addAssetType('html', require.resolve('./assets.js')); if(process.env.NODE_ENV !== 'production') { await bundler.serve(); } else { await bundler.bundle(); } })();