pnpm monorepo中子模块执行git init后Nuxt项目出现Vite请求白名单错误
解决Vite服务允许列表错误(
The request url * is outside of Vite serving allow list) 这个问题是因为初始化Git后,Vite的文件服务安全策略限制了对pnpm工作区软链依赖或Git子模块路径的访问,以下是几个可行的解决办法:
配置Nuxt的Vite服务器允许路径
在项目根目录的nuxt.config.ts中添加server.fs.allow配置,明确允许Vite访问工作区相关路径,比如:export default defineNuxtConfig({ vite: { server: { fs: { // 允许访问工作区根目录(适配当前项目在工作区子目录的场景) allow: ['../..'] } } } })如果你不确定具体路径,也可以用
process.cwd()动态获取工作区根目录,确保覆盖所有子模块和pnpm软链依赖的路径范围。检查Git配置与文件权限
确认初始化Git后生成的.gitignore没有误屏蔽子模块目录或pnpm的node_modules软链;同时检查Git子模块是否已正确拉取,子模块目录的文件权限是否正常(避免Vite无法读取文件)。清除缓存重置状态
执行以下命令清除pnpm和Nuxt的缓存,避免旧缓存导致的路径异常:pnpm store prune npx nuxt clean pnpm install
注:构建正常但开发服务报错的原因是——Vite开发服务器有严格的文件访问安全限制,而生产构建是直接将文件打包到输出目录,不会触发这类路径合法性检查。
内容的提问来源于stack exchange,提问作者a2k42
相关产品推荐
相关产品推荐

