vue.js vite build

发布于 2025-02-13 17:54:50 字数 4841 浏览 2 评论 0原文

我有一个路由器。所有路线和组件都在其中。这些目前是通过导入集成的。但是现在我希望它们重新装载懒惰的负载。到目前为止,我还对此进行了改编,暂时只有一条路线。现在我遇到了问题,如果我查看Via NPM Run Dev它可以正常工作,我会构建项目,但是现在,我会收到以下错误

未经参考的参考:未定义出口

我立即制作()=> import()远离并用导入申请替换后,在重建后再次起作用。

rout.js

    import {createRouter, createWebHistory} from 'vue-router'
    import Dashboard from './pages/Dashboard.vue'
    import PageNotFound from './pages/utility/PageNotFound.vue'
    import Signin from './pages/Signin.vue'
    import Signup from './pages/Signup.vue'
    import ResetPassword from './pages/ResetPassword.vue'
    import ResetPasswordToken from './pages/ResetPasswordToken.vue'
    import Account from './pages/settings/Account.vue'
    import store from "./utils/Store";
    import axios from "axios";
    import Domains from "./pages/products/Domains.vue";
    
    const routerHistory = createWebHistory()
    
    const logout = (to) => {
        hidden code
    
    const verifyLogin = () => {
        hidden code
    }
    
    if(localStorage.getItem("token")){
        window.setInterval(() => {
            verifyLogin();
        }, (1000 * 120));
    }
    
    const router = createRouter({
        history: routerHistory,
        routes: [
            {
                path: '/',
                component: Dashboard,
                name: 'dashboard',
                meta: {
                    requiresAuth: true,
                }
            },
            {
                path: '/products/domains',
                name: 'products_domains',
                //component: Domains,
                component: () => import('./pages/products/Domains.vue'),
                meta: {
                    requiresAuth: true,
                }
            },
            {
                name: 'logout',
                path: '/logout',
                beforeEnter: logout,
            },
            {
                path: '/:pathMatch(.*)*',
                component: PageNotFound
            }
        ]
    })
    router.beforeEach((to) => {
        // instead of having to check every route record with
        // to.matched.some(record => record.meta.requiresAuth)
        if (to.meta.requiresAuth) {
            verifyLogin()
            if (!localStorage.getItem("token")) {
                logout(to)
            }
        } else if (to.meta.requiresGuest) {
            if (localStorage.getItem("token")) {
                router.push({
                    name: 'dashboard',
                    params: {
                        returnTo: to.path,
                        query: to.query,
                    },
                });
            }
        }
    })
    
    export default router

main.js

    import {createApp} from 'vue'
    import router from './router'
    import App from './App.vue'
    import axios from 'axios'
    import VueAxios from 'vue-axios'
    import VueToast from 'vue-toast-notification';
    
    import './css/style.scss'
    import VueSweetalert2 from "vue-sweetalert2";
    import 'sweetalert2/dist/sweetalert2.min.css';
    import 'vue-toast-notification/dist/theme-sugar.css';
    import Store from "./utils/Store";
    
    
    const app = createApp(App)
    app.use(router)
    app.use(VueAxios, axios)
    app.use(VueSweetalert2);
    app.use(VueToast);
    app.use(Store);
    //app.component('font-awesome-icon', FontAwesomeIcon)
    //TODO Change to plugin?
    Store.commit("SET_API");
    if (localStorage.getItem("token") && !Store.state.me.length) {
        Store.dispatch("updateMe")
    }
    
    app.mount('#app')

    <script>
    import Sidebar from '../../partials/Sidebar.vue'
    import Header from '../../partials/Header.vue'
    import axios from "axios";
    import store from "../../utils/Store";
    
    export default {
      name: "Domains",
      components: {
        Sidebar,
        Header,
      },
      data() {
        return {
          sidebarOpen: false,
          products: {},
        }
      },
      beforeMount() {
        this.loadingProducts();
      },
      methods: {
        loadingProducts() {
          this.requestProducts().then(result => {
            this.products = result.data.data;
          });
        },
        requestProducts() {
          return axios.get(store.state.apiDomain + 'products/domains', store.state.request.defaultAxiosConfig);
        }
      }
    }
    </script>

。 zhlrk.png“ alt =”在此处输入图像描述”>

这里的完整消息和代码行

I have a router.js where all routes and components are in it. These are currently integrated via import. But now I want them to be reloaded with lazy load. I have also adapted this so far, for the time being only one route. Now I come to the problem, if I look at the via npm run dev it works, I build the project but now, I get the following error

uncaught ReferenceError: exports is not defined

I make now () => import() away and replace it with import the application works again after rebuild.

route.js

    import {createRouter, createWebHistory} from 'vue-router'
    import Dashboard from './pages/Dashboard.vue'
    import PageNotFound from './pages/utility/PageNotFound.vue'
    import Signin from './pages/Signin.vue'
    import Signup from './pages/Signup.vue'
    import ResetPassword from './pages/ResetPassword.vue'
    import ResetPasswordToken from './pages/ResetPasswordToken.vue'
    import Account from './pages/settings/Account.vue'
    import store from "./utils/Store";
    import axios from "axios";
    import Domains from "./pages/products/Domains.vue";
    
    const routerHistory = createWebHistory()
    
    const logout = (to) => {
        hidden code
    
    const verifyLogin = () => {
        hidden code
    }
    
    if(localStorage.getItem("token")){
        window.setInterval(() => {
            verifyLogin();
        }, (1000 * 120));
    }
    
    const router = createRouter({
        history: routerHistory,
        routes: [
            {
                path: '/',
                component: Dashboard,
                name: 'dashboard',
                meta: {
                    requiresAuth: true,
                }
            },
            {
                path: '/products/domains',
                name: 'products_domains',
                //component: Domains,
                component: () => import('./pages/products/Domains.vue'),
                meta: {
                    requiresAuth: true,
                }
            },
            {
                name: 'logout',
                path: '/logout',
                beforeEnter: logout,
            },
            {
                path: '/:pathMatch(.*)*',
                component: PageNotFound
            }
        ]
    })
    router.beforeEach((to) => {
        // instead of having to check every route record with
        // to.matched.some(record => record.meta.requiresAuth)
        if (to.meta.requiresAuth) {
            verifyLogin()
            if (!localStorage.getItem("token")) {
                logout(to)
            }
        } else if (to.meta.requiresGuest) {
            if (localStorage.getItem("token")) {
                router.push({
                    name: 'dashboard',
                    params: {
                        returnTo: to.path,
                        query: to.query,
                    },
                });
            }
        }
    })
    
    export default router

main.js

    import {createApp} from 'vue'
    import router from './router'
    import App from './App.vue'
    import axios from 'axios'
    import VueAxios from 'vue-axios'
    import VueToast from 'vue-toast-notification';
    
    import './css/style.scss'
    import VueSweetalert2 from "vue-sweetalert2";
    import 'sweetalert2/dist/sweetalert2.min.css';
    import 'vue-toast-notification/dist/theme-sugar.css';
    import Store from "./utils/Store";
    
    
    const app = createApp(App)
    app.use(router)
    app.use(VueAxios, axios)
    app.use(VueSweetalert2);
    app.use(VueToast);
    app.use(Store);
    //app.component('font-awesome-icon', FontAwesomeIcon)
    //TODO Change to plugin?
    Store.commit("SET_API");
    if (localStorage.getItem("token") && !Store.state.me.length) {
        Store.dispatch("updateMe")
    }
    
    app.mount('#app')

Domains.vue

    <script>
    import Sidebar from '../../partials/Sidebar.vue'
    import Header from '../../partials/Header.vue'
    import axios from "axios";
    import store from "../../utils/Store";
    
    export default {
      name: "Domains",
      components: {
        Sidebar,
        Header,
      },
      data() {
        return {
          sidebarOpen: false,
          products: {},
        }
      },
      beforeMount() {
        this.loadingProducts();
      },
      methods: {
        loadingProducts() {
          this.requestProducts().then(result => {
            this.products = result.data.data;
          });
        },
        requestProducts() {
          return axios.get(store.state.apiDomain + 'products/domains', store.state.request.defaultAxiosConfig);
        }
      }
    }
    </script>

enter image description here

enter image description here

Here the full message and the code line

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文