UNPKG

@quasar/app-webpack

Version:

Quasar Framework App CLI with Webpack

84 lines (67 loc) 1.83 kB
const { getPackage } = require('../utils/get-package.js') const { fatal } = require('../utils/logger.js') const bundlerMap = { packager: { pkg: '@electron/packager', version: '18.3.2' }, 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 ] return getPackage(bundler.pkg, appDir) } return { bundlerIsInstalled, ensureInstall, getDefaultName, getBundler } }