Vue3+Vite生产构建报错EPERM:无权限扫描指定系统目录
Vue3 + Vite构建报错EPERM: operation not permitted, scandir 'C:\Documents and Settings'
问题场景
开发模式运行正常,执行npm run build时触发[vite:import-glob]权限错误,指向Room.vue中的import.meta.glob代码:
roomImages.value = import.meta.glob("../assets/rooms/romantique/*.(jpg|JPG|png|PNG)",{ as: "url" });
可能的解决方案
修正glob匹配语法:Vite的
import.meta.glob采用picomatch规则,扩展名匹配需用大括号{}而非小括号(),小括号会导致匹配逻辑异常,错误扫描系统保护目录。修改代码为:roomImages.value = import.meta.glob("../assets/rooms/romantique/*.{jpg,JPG,png,PNG}", { as: "url" });改用项目根相对的绝对路径:避免相对路径解析偏差,将路径改为基于项目根的绝对路径(假设
src是源码目录):roomImages.value = import.meta.glob("/src/assets/rooms/romantique/*.{jpg,JPG,png,PNG}", { as: "url" });检查目录存在性与拼写:确认
../assets/rooms/romantique目录真实存在,拼写(包括大小写)与实际文件夹一致——Windows虽大小写不敏感,但构建工具可能因解析问题触发异常。升级/降级Vite版本:部分旧版Vite的glob匹配存在Windows路径解析bug,尝试更新Vite到最新稳定版,或回退到已知无此问题的版本(比如4.4.x系列)。修改package.json中的
vite版本后执行npm install。
补充验证
如果上述方案无效,可临时注释掉这段glob代码,执行npm run build验证是否还会触发相同错误,以确认是否是该代码导致的问题。
内容的提问来源于stack exchange,提问作者Retnilps
相关产品推荐
相关产品推荐

