当前位置: 首页 > article >正文

出现 Uncaught ReferenceError: process is not defined 错误

在浏览器环境中,process 对象是 Node.js 环境特有的,因此当你在浏览器中运行代码时,会出现 Uncaught ReferenceError: process is not defined 错误。这个错误是因为代码里使用了 process.env.BASE_URL,而浏览器环境下并没有 process 对象。

解决方案

1. 使用 Vite 构建工具

如果你使用的是 Vite 构建工具,process.env 是不被支持的,Vite 使用 import.meta.env 来替代。你需要把代码中的 process.env.BASE_URL 替换成 import.meta.env.BASE_URL

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import Login from '../views/Login.vue';
import EquipmentList from '../views/EquipmentList.vue';
import EquipmentDetail from '../views/EquipmentDetail.vue';
import EquipmentMap from '../views/EquipmentMap.vue';
import Inspection from '../views/Inspection.vue';
import WorkOrderList from '../views/WorkOrderList.vue';
import WorkOrderDetail from '../views/WorkOrderDetail.vue';
import WorkOrderCreate from '../views/WorkOrderCreate.vue';
import UserList from '../views/UserList.vue';
import UserDetail from '../views/UserDetail.vue';
import Dashboard from '../views/Dashboard.vue';const routes = [{path: '/',name: 'Home',component: Home,meta: { requiresAuth: true }},{path: '/login',name: 'Login',component: Login,meta: { requiresGuest: true }},{path: '/dashboard',name: 'Dashboard',component: Dashboard,meta: { requiresAuth: true }},{path: '/equipments',name: 'EquipmentList',component: EquipmentList,meta: { requiresAuth: true }},{path: '/equipments/map',name: 'EquipmentMap',component: EquipmentMap,meta: { requiresAuth: true }},{path: '/equipments/:id',name: 'EquipmentDetail',component: EquipmentDetail,meta: { requiresAuth: true }},{path: '/equipments/:id/inspection',name: 'Inspection',component: Inspection,meta: { requiresAuth: true }},{path: '/equipments/:id/inspection/:recordId',name: 'InspectionRecord',component: Inspection,meta: { requiresAuth: true }},{path: '/workorders',name: 'WorkOrderList',component: WorkOrderList,meta: { requiresAuth: true }},{path: '/workorders/create',name: 'WorkOrderCreate',component: WorkOrderCreate,meta: { requiresAuth: true }},{path: '/workorders/:id',name: 'WorkOrderDetail',component: WorkOrderDetail,meta: { requiresAuth: true }},{path: '/users',name: 'UserList',component: UserList,meta: { requiresAuth: true, requiresAdmin: true }},{path: '/users/:id',name: 'UserDetail',component: UserDetail,meta: { requiresAuth: true, requiresAdmin: true }}
];const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes
});// 路由守卫
router.beforeEach((to, from, next) => {const isAuthenticated = localStorage.getItem('token');// 检查是否需要认证if (to.meta.requiresAuth && !isAuthenticated) {next({ name: 'Login' });}// 检查是否需要游客身份else if (to.meta.requiresGuest && isAuthenticated) {next({ name: 'Home' });}// 检查是否需要管理员权限else if (to.meta.requiresAdmin) {const userRole = localStorage.getItem('role');if (userRole !== 'admin') {next({ name: 'Home' });} else {next();}}else {next();}
});export default router;
2. 使用 Webpack 构建工具

如果你使用的是 Webpack 构建工具,可以通过 webpack.DefinePlugin 来定义 process.env

首先,在 webpack.config.js 中添加如下配置:

const webpack = require('webpack');module.exports = {// 其他配置...plugins: [new webpack.DefinePlugin({'process.env': {BASE_URL: JSON.stringify(process.env.BASE_URL)}})]
};

这样就可以在代码中继续使用 process.env.BASE_URL 了。

3. 硬编码 BASE_URL

如果你不想使用构建工具的环境变量,可以直接硬编码 BASE_URL

const router = createRouter({history: createWebHistory('/'), // 这里根据实际情况修改为你的基础 URLroutes
});

以上三种方法都可以解决 process is not defined 的问题,你可以根据自己的项目情况选择合适的方法。

http://www.lryc.cn/news/2379422.html

相关文章:

  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-A. PostgreSQL常用函数速查表
  • 【时空图神经网络 交通】相关模型2:STSGCN | 时空同步图卷积网络 | 空间相关性,时间相关性,空间-时间异质性
  • 零基础学Java——第十一章:实战项目 - 微服务入门
  • docker 学习记录
  • 自媒体工作室如何矩阵?自媒体矩阵养号策略
  • 南京邮电大学金工实习答案
  • 【C++进阶篇】C++容器完全指南:掌握set和map的使用,提升编码效率
  • 世界模型+大模型+自动驾驶 论文小汇总
  • 物联网设备远程管理:基于代理IP的安全固件更新通道方案
  • MyBatis 延迟加载与缓存
  • C++函数三剑客:缺省参数·函数重载·引用的高效编程指南
  • ORACLE 11.2.0.4 数据库磁盘空间爆满导致GAP产生
  • 面试题总结一
  • SWUST数据结构下半期实验练习题
  • 专业版降重指南:如何用Python批量替换同义词?自动化操作不香嘛?
  • 一:操作系统之操作系统结构
  • 机器学习 Day18 Support Vector Machine ——最优美的机器学习算法
  • IIS入门指南:原理、部署与实战
  • Linux运维——Shell脚本读取配置文件
  • 答题pk小程序道具卡的获取与应用
  • leetcode3265. 统计近似相等数对 I-medium
  • 【架构篇】代码组织结构设计
  • 2_Spring【IOC容器中获取组件Bean】
  • 日期数据渲染转换问题
  • Spring Boot拦截器详解:原理、实现与应用场景
  • ubuntu18.04编译qt5.14.2源码
  • 创建指定版本的vite项目
  • iOS 初识RunLoop
  • 电子电路仿真实验教学平台重磅上线!——深圳航天科技创新研究院倾力打造,助力高校教学数字化转型
  • 搭建一个WordPress网站需要多少成本