Развертывание простого приложения блога 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
  }
}

но я все равно получаю те же результаты, каталог не открывается.

0 ответов

Другие вопросы по тегам