UNPKG

@quasar/app-webpack

Version:

Quasar Framework App CLI with Webpack

88 lines (71 loc) 1.95 kB
const { getPackage } = require('../utils/get-package.js') const { fatal } = require('../utils/logger.js') const bundlerMap = { packager: { pkg: '@electron/packager', version: '19.0.0' }, builder: { pkg: 'electron-builder', version: '26.0.12' } } function isValidName(bundlerName) { return ['packager', 'builder'].includes(bundlerName) } function installBundler(bundlerName, nodePackager) { const bundler = bundlerMap[bundlerName] nodePackager.installPackage(`${bundler.pkg}@^${bundler.version}`, { isDevDependency: true, displayName: bundler.pkg }) } function hasPackage(pkgName, appPkg) { return ( ((appPkg.devDependencies && appPkg.devDependencies[pkgName]) || (appPkg.dependencies && appPkg.dependencies[pkgName])) !== void 0 ) } module.exports.createInstance = function createInstance({ appPaths, pkg: { appPkg }, cacheProxy }) { const nodePackager = cacheProxy.getModule('nodePackager') function bundlerIsInstalled(bundlerName) { const bundler = bundlerMap[bundlerName] return hasPackage(bundler.pkg, appPkg) } function ensureInstall(bundlerName) { if (!isValidName(bundlerName)) { fatal(`Unknown bundler "${bundlerName}" for Electron`) } if (!bundlerIsInstalled(bundlerName)) { installBundler(bundlerName, nodePackager) } } function getDefaultName() { if (bundlerIsInstalled('packager')) { return 'packager' } if (bundlerIsInstalled('builder')) { return 'builder' } return 'packager' } function getBundler(bundlerName) { const { appDir } = appPaths const bundler = bundlerMap[bundlerName] const fn = getPackage(bundler.pkg, appDir) return bundlerName === 'packager' ? /* @electron/packager v19+ */ fn.packager || /* @electron/packager v18 */ fn : fn } return { bundlerIsInstalled, ensureInstall, getDefaultName, getBundler } }