Vue Folder Structure

Overview

We have used yarn serve to compile the vue app files.

main.js file :
import { createApp } from 'vue'
import App from './App.vue'
import router from "./router";
import VueApexCharts from "vue3-apexcharts";
import vClickOutside from "click-outside-vue3";
import { registerScrollSpy } from 'vue3-scroll-spy';

import { vMaska } from "maska"
import i18n from "./i18n"
import { initFirebaseBackend } from './authUtils'
import { configureFakeBackend } from './helpers/fake-backend';

import BootstrapVueNext from 'bootstrap-vue-next'

import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue-next/dist/bootstrap-vue-next.css'
import "@/assets/scss/app.scss";
import "@vueform/multiselect/themes/default.css"

// PINIA
import pinia from '@/state/pinia'

const firebaseConfig = {
  apiKey: process.env.VUE_APP_APIKEY,
  authDomain: process.env.VUE_APP_AUTHDOMAIN,
  databaseURL: process.env.VUE_APP_VUE_APP_DATABASEURL,
  projectId: process.env.VUE_APP_PROJECTId,
  storageBucket: process.env.VUE_APP_STORAGEBUCKET,
  messagingSenderId: process.env.VUE_APP_MESSAGINGSENDERID,
  appId: process.env.VUE_APP_APPId,
  measurementId: process.env.VUE_APP_MEASUREMENTID
};

if (process.env.VUE_APP_DEFAULT_AUTH === "firebase") {
  initFirebaseBackend(firebaseConfig);
} else {
  configureFakeBackend();
}

import 'sweetalert2/dist/sweetalert2.min.css';
import '@vueform/slider/themes/default.css';

createApp(App)
  .use(pinia)
  .use(router)
  .use(require('vue-chartist'))
  .use(BootstrapVueNext)
  .use(VueApexCharts)
  .use(vClickOutside)
  .use(i18n)
  .use(registerScrollSpy)
  .directive("maska", vMaska)
  .mount('#app')
                                                            

Layout setup

You can set the default layout in the src/state/pinia/layout.js file.

import { defineStore } from "pinia";
export const useLayoutStore = defineStore("layout", {
    state: () => ({
        layoutType: "vertical",
        leftSidebarType: "dark",
        layoutWidth: "fluid",
        topbar: "dark",
        loader: false,
        mode: "light"
      }),
      actions: {
        changeLayoutType(layoutType) {
          this.layoutType = layoutType;
        },
        changeLayoutWidth(layoutWidth) {
          this.layoutWidth = layoutWidth;
        },
        changeLeftSidebarType(leftSidebarType) {
          this.leftSidebarType = leftSidebarType;
        },
        changeTopbar(topbar) {
          this.topbar = topbar;
        },
        changeLoaderValue(loader) {
          this.loader = loader;
        },
        changeMode(mode) {
            this.mode = mode
        }
      }
    });                                               
 
layoutType: "vertical", To set vertical layout width.
layoutType: "horizontal", To set horizontal layout width.
leftSidebarType: "dark", To set light sidebar type.
leftSidebarType: "light", To set dark sidebar type.
layoutWidth: "fluid", To set fluid layout width.
layoutWidth: "boxed", To set boxed layout width.
topbar: "dark", To set the Dark color of Topbar.
topbar: "light", To set the Light color of Topbar.
loader:false, set false the preloader on the Page.
loader:true, set true the preloader on the Page.
mode:"light", To set the Light Mode.
mode:"dark", To set the Dark Mode.
2025 © Skote.