4

我有这样的代码

import fs from 'fs';
import { promisify } from 'util';
import type { SvelteComponent } from 'svelte';

const readdir = promisify(fs.readdir);

export async function getAllPosts() {
    const files = (await readdir(`src/data/posts`)).map((i) => i.replace(/.svx$/, ''));
    return files;
}

和我的服务器路由

import { getAllPosts } from '../../lib/blog';

export async function get() {
    return { body: await getAllPosts() };
}

它在开发中运行良好,但在 netlify 上的生产中不起作用,因为src/data/posts不再有真正的目录。如何让 sveltekit 在构建时生成这个数组?

我曾尝试使用静态适配器,但它无法正确生成路由,因为尽管网站上所有页面都有链接,但它们不会立即生成。所以我想我必须使用 netlify 适配器。

4

1 回答 1

1

您是正确的,该/src/data/posts文件夹不再存在,因此您的代码不起作用。

您要做的第一件事是将资产复制/functions到文件夹中,以便它们首先可用。

然后你必须确保你的脚本看起来在正确的位置,这里有一些魔法正在发生,函数没有在与它放置的相同位置执行。您可以在 Netlify 支持论坛上阅读更多关于此的内容,主题如下

如果您最终找到一个可行的解决方案,也可以在此处添加它作为答案。

于 2021-06-15T07:32:19.600 回答