| // Configuration for your app |
| // https://quasar.dev/quasar-cli/quasar-conf-js |
| const ESLintPlugin = require('eslint-webpack-plugin') |
| const { configure } = require('quasar/wrappers') |
| |
| module.exports = configure(function (ctx) { |
| return { |
| supportTS: true, |
| // Source files of application |
| sourceFiles: { |
| rootComponent: 'src/App.vue', |
| router: 'src/router', |
| store: 'src/store', |
| indexHtmlTemplate: 'src/index.template.html', |
| electronMain: 'src-electron/ui/main-ui' |
| }, |
| |
| // app boot file (/src/boot) |
| // --> boot files are part of "main.js" |
| // https://quasar.dev/quasar-cli/cli-documentation/boot-files |
| boot: ['axios', 'globalapi', 'tour', 'ws'], |
| |
| // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css |
| css: ['app.sass'], |
| |
| // https://github.com/quasarframework/quasar/tree/dev/extras |
| extras: [ |
| 'material-icons', // optional, you are not bound to it |
| 'material-icons-outlined', // optional, you are not bound to it |
| // 'ionicons-v4', |
| 'mdi-v4', |
| 'material-symbols-outlined', |
| // 'fontawesome-v5', |
| // 'eva-icons', |
| // 'themify', |
| // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! |
| |
| 'roboto-font' // optional, you are not bound to it |
| ], |
| |
| // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework |
| framework: { |
| iconSet: 'material-icons', // Quasar icon set |
| lang: 'en-US', // Quasar language pack |
| |
| // Possible values for "all": |
| // * 'auto' - Auto-import needed Quasar components & directives |
| // (slightly higher compile time; next to minimum bundle size; most convenient) |
| // * false - Manually specify what to import |
| // (fastest compile time; minimum bundle size; most tedious) |
| // * true - Import everything from Quasar |
| // (not treeshaking Quasar; biggest bundle size; convenient) |
| all: 'auto', |
| |
| components: [], |
| directives: [], |
| |
| // Quasar plugins |
| plugins: ['Loading', 'Notify'], |
| config: { |
| loading: {}, |
| notify: {} |
| } |
| }, |
| |
| // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build |
| build: { |
| scopeHoisting: true, |
| vueRouterMode: 'hash', // available values: 'hash', 'history' |
| showProgress: true, |
| gzip: false, |
| analyze: false, |
| distDir: 'spa', |
| // Options below are automatically set depending on the env, set them if you want to override |
| // preloadChunks: false, |
| // extractCSS: false, |
| |
| // https://quasar.dev/quasar-cli/cli-documentation/handling-webpack |
| extendWebpack(cfg) { |
| cfg.plugins.push(new ESLintPlugin({ extensions: ['js', 'vue'] })) |
| cfg.module.rules.push({ |
| enforce: 'pre', |
| test: /\.(sql)$/, |
| loader: 'file-loader', |
| exclude: /node_modules/ |
| }) |
| } |
| }, |
| |
| // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer |
| devServer: { |
| server: { |
| type: 'http' |
| }, |
| port: 8080, |
| open: false, |
| headers: { |
| // 'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH, DELETE, OPTIONS', |
| // 'Access-Control-Allow-Headers': 'Content-Type, Authorization', |
| 'Access-Control-Allow-Origin': '*' |
| } |
| }, |
| |
| // animations: 'all', // --- includes all animations |
| // https://quasar.dev/options/animations |
| animations: ['fadeInLeft', 'fadeOutLeft'], |
| |
| // https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr |
| ssr: { |
| pwa: false |
| }, |
| |
| // https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa |
| pwa: { |
| workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest' |
| workboxOptions: {}, // only for GenerateSW |
| manifest: { |
| name: 'zap', |
| short_name: 'zap', |
| description: 'Configuration tool for the Zigbee Cluster Library', |
| display: 'standalone', |
| orientation: 'portrait', |
| background_color: '#ffffff', |
| theme_color: '#027be3', |
| icons: [ |
| { |
| src: 'statics/icons/icon-128x128.png', |
| sizes: '128x128', |
| type: 'image/png' |
| }, |
| { |
| src: 'statics/icons/icon-192x192.png', |
| sizes: '192x192', |
| type: 'image/png' |
| }, |
| { |
| src: 'statics/icons/icon-256x256.png', |
| sizes: '256x256', |
| type: 'image/png' |
| }, |
| { |
| src: 'statics/icons/icon-384x384.png', |
| sizes: '384x384', |
| type: 'image/png' |
| }, |
| { |
| src: 'statics/icons/icon-512x512.png', |
| sizes: '512x512', |
| type: 'image/png' |
| } |
| ] |
| } |
| }, |
| |
| // Full list of options: https://quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova |
| cordova: { |
| // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing |
| id: '' |
| }, |
| |
| // Full list of options: https://quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor |
| capacitor: { |
| hideSplashscreen: true |
| }, |
| |
| // Full list of options: https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron |
| electron: { |
| bundler: 'packager', // 'packager' or 'builder' |
| |
| packager: { |
| // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options |
| asar: false, |
| // OS X / Mac App Store |
| // appBundleId: '', |
| // appCategoryType: '', |
| // osxSign: '', |
| // protocol: 'myapp://path', |
| |
| // Windows only |
| // win32metadata: { ... } |
| |
| platform: 'linux,darwin,win32', |
| //platform: 'linux', |
| //arch: 'ia32,x64', |
| arch: 'x64', |
| extraResource: ['src-electron/db/zap-schema.sql', 'src-electron/icons'], |
| afterCopy: [ |
| (buildPath, electronVersion, platform, arch, callback) => { |
| require('electron-rebuild') |
| .rebuild({ buildPath, electronVersion, arch }) |
| .then(() => callback()) |
| .catch((error) => callback(error)) |
| } |
| ] |
| }, |
| |
| builder: { |
| // https://www.electron.build/configuration/configuration |
| |
| appId: 'zap' |
| }, |
| |
| // keep in sync with electron-main |
| // > BrowserWindow > webPreferences > nodeIntegration |
| // More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration |
| nodeIntegration: false, |
| |
| extendWebpackMain(cfg) { |
| // do something with Electron main process Webpack cfg |
| // chainWebpack also available besides this extendWebpack |
| cfg.plugins.push(new ESLintPlugin({ extensions: ['js'] })) |
| cfg.module.rules.push({ |
| enforce: 'pre', |
| test: /\.(png|jpe?g|gif|sql)$/, |
| loader: 'file-loader', |
| exclude: /node_modules/, |
| options: { |
| name: '[path][name].[ext]' |
| } |
| }) |
| }, |
| |
| extendWebpackPreload(cfg) { |
| cfg.plugins.push(new ESLintPlugin({ extensions: ['js'] })) |
| cfg.module.rules.push({ |
| enforce: 'pre', |
| test: /\.(png|jpe?g|gif|sql)$/, |
| loader: 'file-loader', |
| exclude: /node_modules/, |
| options: { |
| name: '[path][name].[ext]' |
| } |
| }) |
| } |
| } |
| } |
| }) |