Развертывание простого приложения блога SvelteKit на Vercel / Netlify
У меня есть простое приложение для блога, созданное с помощью SvelteKit. Я обрабатываю файлы уценки для своего блога, поэтому у меня есть:
import { process } from '$lib/markdown';
import fs from 'fs';
import dayjs from 'dayjs';
export function get() {
let posts = fs.readdirSync(`./src/routes/contents`)
.filter(fileName => /.+\.svx$/.test(fileName))
.map(fileName => {
const { metadata } = process(`src/routes/contents/${fileName}`);
return {
metadata
};
});
// sort the posts by create date.
posts.sort((a, b) => new Date(b.metadata.published_at) - new Date(a.metadata.published_at));
let body = JSON.stringify(posts);
return {
body
}
}
Это отлично работает локально, но когда я пытаюсь развернуть Vercel с помощью соответствующего адаптера, я получаю
500 Неожиданный токен E в JSON в позиции 0 SyntaxError: Неожиданный токен E в JSON в позиции 0
потому что он не может загрузить каталог.
Следуя инструкциям на https://vercel.com/support/articles/how-can-i-use-files-in-serverless-functions, я изменил свой код на
import { process } from '$lib/markdown';
import fs from 'fs';
import dayjs from 'dayjs';
import path from 'path';
//const dirPath = path.join(__dirname, '/pictures');
//path.join(__dirname,'routes/contents')
export function get() {
const __dirname = path.resolve();
const dir = path.join(__dirname, '/src/routes/contents');
console.log (dir)
let posts = fs.readdirSync(dir)
.filter(fileName => /.+\.svx$/.test(fileName))
.map(fileName => {
const { metadata } = process(dir + `/${fileName}`);
return {
metadata
};
});
// sort the posts by create date.
posts.sort((a, b) => new Date(b.metadata.published_at) - new Date(a.metadata.published_at));
let body = JSON.stringify(posts);
return {
body
}
}
но я все равно получаю те же результаты, каталог не открывается.