ATQQ / sugar-blog

✍️📚我写博客的地方🤪🤪🤪记录随笔与学习笔记,仓库包含:博客内容,博客主题、博客模板、vitepress离线全文搜索插件、VitePress RSS 支持插件;a blog theme use vitepress
https://sugarat.top
MIT License
361 stars 65 forks source link

使用vitepress-plugin-rss 在打包时出现问题 cdata.replace is not a function #279

Closed Truraly closed 2 months ago

Truraly commented 2 months ago

你好,我在使用vitepress-plugin-rss这个包来实现网站的RSS更新,但是我在打包时出现了如下错误

build error:
cdata.replace is not a function
TypeError: cdata.replace is not a function
    at writeCdata (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:111:142)
    at writeElementsCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:292:116)
    at writeElementCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:272:12)
    at writeElementsCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:295:73)
    at writeElementCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:272:12)
    at writeElementsCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:295:73)
    at writeElementCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:272:12)
    at writeElementsCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:295:73)
    at writeElementCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:272:12)
    at writeElementsCompact (/home/truraly/TPARA/Notes/blogs/node_modules/xml-js/lib/js2xml.js:295:73)

经过详细的寻找package-lock.json 我发现了其中的依赖关系 xml-js -> feed -> vitepress-plugin-rss

package-lock.json 部分截取如下:

没有其他的依赖关系了

    "node_modules/feed": {
      "version": "4.2.2",
      "license": "MIT",
      "dependencies": {
        "xml-js": "^1.6.11"
      },
      "engines": {
        "node": ">=0.4.0"
      }
    },
    "node_modules/xml-js": {
      "version": "1.6.11",
      "license": "MIT",
      "dependencies": {
        "sax": "^1.2.4"
      },
      "bin": {
        "xml-js": "bin/cli.js"
      }
    },
    "node_modules/vitepress-plugin-rss": {
      "version": "0.2.9",
      "license": "MIT",
      "dependencies": {
        "@sugarat/theme-shared": "0.0.2",
        "fast-glob": "^3.2.12",
        "feed": "^4.2.2"
      },
      "peerDependencies": {
        "vitepress": "^1"
      }
    },

我的能力无法解决这个错误,我认为应该是这个插件导致的错误。

其余可能有用的信息

OS: Kubuntu 22.04.4 LTS x86_64 Kernel: 6.5.0-45-generic CPU: AMD Ryzen 5 5600H with Radeon Graphics (12) @ 4.280GHz GPU: AMD ATI 06:00.0 Cezanne GPU: NVIDIA GeForce RTX 3050 Ti Mobile Memory: 27905MiB node:v21.5.0

ATQQ commented 2 months ago

你可以提供一下能复现问题的仓库吗

Truraly commented 2 months ago

今天对文章进行二分排错,最后锁定在了一个叫1.md的文章上,我猜应该是在识别的时候把这个误识别为数字了,改成一.md就解决了

ATQQ commented 2 months ago

好滴,我下来也试试按你这个说法。

ATQQ commented 2 months ago

我这边没有复现这个问题,你有空看看换成 pnpm 会不会有这个问题。我看 xml-js 和 feed 这2个库确实很久没有有更新了。

image
Truraly commented 2 months ago

发现似乎不是文件名而是前言里的问题

我在创建的时候会使用脚本,创建和文件名相同title前言

you can try this

---
title: 1
---

# test

test1
ATQQ commented 2 months ago

ok 我复现了,应该是 title 设置为数字,解析后 被当做字符串操作导致的问题,我看看处理一下。

ATQQ commented 2 months ago

vitepress-plugin-rss@0.2.10

修了这个问题😋