Nuxt 피드 모듈 도움말

13032 단어 vueblognuxthelp
저는 현재 제 블로그를 gridsome에서 nuxt로 옮기는 과정에 있습니다. 대부분은 상당히 간단하지만, 여기에서 교차 포스트를 할 수 있도록 피드를 생성하는 것이 더 어려운 것으로 판명되었습니다.

nuxt/content module에 대한 통합 문서에 나와 있는 예제를 사용하여 내가 생각하기에 필요한 것을 추가했지만 시도할 때 오류가 발생하고 localhost:3000/feed.xml 내가 무엇을 잘못하고 있는지 완전히 확신할 수 없습니다. 이것은 터미널에서 본 것입니다.

 ✖ Nuxt Fatal Error                           
   Error while executing feed creation function  


그리고 이것은 nuxt.config.js:
const fs = require('fs').promises;
const path = require('path');

let posts = [];

const constructFeedItem = (post, dir, hostname) => {  
  const url = `${hostname}/${dir}/${post.slug}`;
  return {
    title: post.title,
    id: url,
    link: url,
    description: post.description,
    content: post.bodyPlainText
  }
} 

const create = async (feed, args) => {
  const [filePath, ext] = args;  
  const hostname = process.NODE_ENV === 'production' ? 'https://my-production-domain.com' : 'http://localhost:3000';
  feed.options = {
    title: "My Web Dev Blog",
    description: "Documenting my web dev learnings",
    link: `${hostname}/feed.${ext}`
  }
  const { $content } = require('@nuxt/content')
  if (posts === null || posts.length === 0)
    posts = await $content(filePath).fetch();

  for (const post of posts) {
    const feedItem = await constructFeedItem(post, filePath, hostname);
    feed.addItem(feedItem);
  }
  return feed;
}


export default {
  // Target (https://go.nuxtjs.dev/config-target)
  target: 'static',

  // Global page headers (https://go.nuxtjs.dev/config-head)
  head: {
    title: 'Web Developer Portfolio and Blog',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: '' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },

  // Global CSS (https://go.nuxtjs.dev/config-css)
  css: [
    '@fortawesome/fontawesome-svg-core/styles.css'
  ],

  // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins)
  plugins: [
    '~/plugins/fontawesome.js'
  ],

  // Modules for dev and build (recommended) (https://go.nuxtjs.dev/config-modules)
  buildModules: [
    // https://go.nuxtjs.dev/tailwindcss
    '@nuxtjs/tailwindcss',
  ],

  // Modules (https://go.nuxtjs.dev/config-modules)
  modules: [
    // https://go.nuxtjs.dev/content
    '@nuxt/content', 
    '@nuxtjs/feed'

  ],

  feed: [
    {
      path: '/feed.xml',
      create,
      cacheTime: 1000 * 60 * 15,
      type: 'rss2',
      data: [ 'blog', 'xml' ]
    },
  ], 
  hooks: {
    'content:file:beforeInsert': (document) => {
      if (document.extension === '.md') {      
        document.bodyPlainText = document.text;
      }
    },
  },


누구든지 이것에 대한 경험이 있습니까? github의 피드 모듈 문서에 있는 예제는 @nuxt/content를 사용할 수 있으므로 원하지 않거나 필요하지 않은 axios를 사용합니다. 내가 뭘 잘못하고 있죠?

좋은 웹페이지 즐겨찾기