blob: 5937b315510d45e28c338a73a4c95813b41f54b1 [file] [log] [blame]
// 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]'
}
})
}
}
}
})