错误:pnpm monorepo 工作空间内的子模块 git init 后,“请求 url * 超出 Vite 服务允许列表”

And*_*K11 8 nuxt.js vite pnpm-workspace

我已经设置了一个 pnpm 工作区,其中包含许多我添加为 git 子模块的项目。

之前工作的 Nuxt 项目突然开始给出The request url * is outside of Vite serving allow list多个文件的错误,包括在工作区 node_modules文件夹内作为 pnpm 模块安装的依赖项。

唯一的变化是将我的项目初​​始化为 git 存储库。

我期望开发服务器继续工作,并且对 git 的更改不会产生任何影响。

该项目仍然构建正常。

san*_*lot 12

这是推荐的方式

import { defineConfig, searchForWorkspaceRoot } from 'vite'

export default defineConfig({
  server: {
    fs: {
      allow: [
        // search up for workspace root
        searchForWorkspaceRoot(process.cwd()),
        // your custom rules
        '/path/to/custom/allow',
      ],
    },
  },
})
Run Code Online (Sandbox Code Playgroud)


And*_*K11 11

Vite 使用“自动工作区根目录检测”来找出您的项目根目录在哪里。

pnpm 工作区中,您的项目node_modules将安装在工作区的根目录中,而不是安装在项目文件夹中。

一旦你在工作区中为你的项目初始化了一个 git 存储库,vite 似乎就会自动检测到它作为你的项目根目录而不是工作区(我假设它被初始化为你要添加子模块的 git 存储库)。

解决办法是指定pnpm工作空间为vite服务器允许的目录

export default defineNuxtConfig({
    vite: {
        server: {
            fs: {
                allow: ["/home/user/Monorepo"]
            }
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

vite:服务器-fs-允许

  • 我尝试了这个:/sf/answers/5062892061/ 但唯一有效的(但感觉有点脏)是,而不是像你那样设置 vite.server.fs.allow ,设置 vite .server.fs.strict 为 false。 (2认同)