Skip to content
Snippets Groups Projects
quasar.conf.js 7.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • Griefed's avatar
    Griefed committed
    /*
     * This file runs in a Node context (it's NOT transpiled by Babel), so use only
     * the ES6 features that are supported by your Node version. https://node.green/
     */
    
    // Configuration for your app
    // https://v2.quasar.dev/quasar-cli/quasar-conf-js
    
    /* eslint-env node */
    const ESLintPlugin = require('eslint-webpack-plugin')
    const { configure } = require('quasar/wrappers');
    
    module.exports = configure(function (ctx) {
      return {
        // https://v2.quasar.dev/quasar-cli/supporting-ts
        supportTS: true,
    
        // https://v2.quasar.dev/quasar-cli/prefetch-feature
        // preFetch: true,
    
        // app boot file (/src/boot)
        // --> boot files are part of "main.js"
        // https://v2.quasar.dev/quasar-cli/boot-files
        boot: [
        ],
    
        // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
        css: [
          'app.sass'
        ],
    
        // https://github.com/quasarframework/quasar/tree/dev/extras
        extras: [
          // 'ionicons-v4',
    
    Griefed's avatar
    Griefed committed
          'mdi-v5',
    
    Griefed's avatar
    Griefed committed
          // 'fontawesome-v5',
          // 'eva-icons',
          // 'themify',
          // 'line-awesome',
          // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
    
          'roboto-font', // optional, you are not bound to it
          'material-icons', // optional, you are not bound to it
        ],
    
        // Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
        build: {
    
          scopeHoisting: true,
    
    Griefed's avatar
    Griefed committed
          vueRouterMode: 'hash', // available values: 'hash', 'history'
    
          showProgress: true,
          gzip: false,
          analyze: false,
          publicPath: '',
    
    Griefed's avatar
    Griefed committed
    
          // transpile: false,
    
          // Add dependencies for transpiling with Babel (Array of string/regex)
          // (from node_modules, which are by default not transpiled).
          // Applies only if "transpile" is set to true.
          // transpileDependencies: [],
    
          // rtl: true, // https://v2.quasar.dev/options/rtl-support
          // preloadChunks: true,
          // showProgress: false,
          // gzip: true,
          // analyze: true,
    
          // Options below are automatically set depending on the env, set them if you want to override
          // extractCSS: false,
    
          // https://v2.quasar.dev/quasar-cli/handling-webpack
          // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
          chainWebpack (chain) {
            chain.plugin('eslint-webpack-plugin')
              .use(ESLintPlugin, [{ extensions: [ 'js', 'vue' ] }])
          },
        },
    
        // Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
        devServer: {
          https: false,
          port: 3000,
          open: true // opens browser window automatically
        },
    
        // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
        framework: {
          config: {
            brand: {
              primary:   '#325358',
              secondary: '#54a896',
              accent:    '#6a1a78',
              dark:      '#1d1d1d',
              positive:  '#21BA45',
              negative:  '#C10015',
              info:      '#31CCEC',
              warning:   '#cea32b'
            }
          },
    
          iconSet: 'material-icons', // Quasar icon set
          lang: 'en-US', // Quasar language pack
    
          // For special cases outside of where the auto-import strategy can have an impact
          // (like functional components as one of the examples),
          // you can manually specify Quasar components/directives to be available everywhere:
          //
          // components: [],
          // directives: [],
    
          // Quasar plugins
          plugins: [
            'Notify',
            'Loading',
            'AppFullscreen'
          ],
        },
    
        // animations: 'all', // --- includes all animations
        // https://v2.quasar.dev/options/animations
        animations: [],
    
        // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
        ssr: {
          pwa: false,
    
          // manualStoreHydration: true,
          // manualPostHydrationTrigger: true,
    
          prodPort: 3000, // The default port that the production server should use
                          // (gets superseded if process.env.PORT is specified at runtime)
    
          maxAge: 1000 * 60 * 60 * 24 * 30,
            // Tell browser when a file from the server should expire from cache (in ms)
    
          chainWebpackWebserver (chain) {
            chain.plugin('eslint-webpack-plugin')
              .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
          },
    
          middlewares: [
            ctx.prod ? 'compression' : '',
            'render' // keep this as last one
          ]
        },
    
        // https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
        pwa: {
          workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
          workboxOptions: {}, // only for GenerateSW
    
          // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
          // if using workbox in InjectManifest mode
          chainWebpackCustomSW (chain) {
            chain.plugin('eslint-webpack-plugin')
              .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
          },
    
          manifest: {
            name: `Let Them Trade Map Editor`,
            short_name: `Let Them Trade Map Editor`,
            description: `Visual Map Editor for Let Them Trade`,
            display: 'standalone',
            orientation: 'portrait',
            background_color: '#ffffff',
            theme_color: '#027be3',
            icons: [
              {
                src: 'icons/icon-128x128.png',
                sizes: '128x128',
                type: 'image/png'
              },
              {
                src: 'icons/icon-192x192.png',
                sizes: '192x192',
                type: 'image/png'
              },
              {
                src: 'icons/icon-256x256.png',
                sizes: '256x256',
                type: 'image/png'
              },
              {
                src: 'icons/icon-384x384.png',
                sizes: '384x384',
                type: 'image/png'
              },
              {
                src: 'icons/icon-512x512.png',
                sizes: '512x512',
                type: 'image/png'
              }
            ]
          }
        },
    
        // Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
        cordova: {
          // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
        },
    
        // Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
        capacitor: {
          hideSplashscreen: true
        },
    
        // Full list of options: https://v2.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
    
            // OS X / Mac App Store
            // appBundleId: '',
            // appCategoryType: '',
            // osxSign: '',
            // protocol: 'myapp://path',
    
            // Windows only
    
    Trungel's avatar
    Trungel committed
            win32metadata: {
              FileDescription: "Map Maker for LTT"
            }
    
    Griefed's avatar
    Griefed committed
          },
    
          builder: {
            // https://www.electron.build/configuration/configuration
    
            appId: 'ltt-mapeditor'
          },
    
          // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
          chainWebpackMain (chain) {
            chain.plugin('eslint-webpack-plugin')
              .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
          },
    
          // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
          chainWebpackPreload (chain) {
            chain.plugin('eslint-webpack-plugin')
              .use(ESLintPlugin, [{ extensions: [ 'js' ] }])
          },
        }
      }
    });