常见问题
构建失败
ReferenceError: document is not defined
这通常发生在使用自定义代码 document.xxx 或引入第三方库(仅在浏览器端可用的 NPM 包)时。 代码直接调用了 document,而该变量在 Node 端不存在,因此导致构建失败。
你应当使用 isClient 判断逻辑来使得该代码仅在客户端执行。
ts
import { isClient } from '@vueuse/core'
if (isClient) {
document.xxx()
// import('xxx')
}改变构建形式
Valaxy 默认将 xxx.md 构建为 /xxx.html。
如果你更希望构建为 /xxx/index.html 的目录形式,请将页面组织为目录索引——把内容放在 pages/xxx/index.md(而非 pages/xxx.md)。以 / 结尾的路由会写入 <route>/index.html。
旧版
vite-ssg的dirStyle选项已随传统引擎在 v1.0 中移除(见 #706)。
部署到 Github Pages 后部分页面无法访问或 JS 路径找不到
Github Pages 默认使用 Jekyll 来构建静态站点,而 Jekyll 默认不会构建以 _ 开头的文件或文件夹。
使用 Valaxy 构建后的产物可能会出现以 _ 开头的文件,所以这种文件提交后会被 Jekyll 的构建忽略,从而导致问题发生。
实际上 Valaxy 构建后的产物可以直接用作静态站点,而不需要 Jekyll 构建这种多余的操作。
如果 Github Pages 所部署内容的根路径有名为 .nojekyll 的空文件,则会跳过 Jekyll 构建操作。
所以可以在项目的 public 文件夹内新建一个名为 .nojekyll 的文件:
bash
|-- public
| |-- .nojekyllTo Be Continued.