首页 > 解决方案 > 使用 require.context 解析包含降价文件的路径

问题描述

我想posts使用 require.context 获取文件夹内所有降价文件的列表

这就是我在里面做的方式blog.js

const req = require.context('../posts', true, /\.md$/);
const posts = (ctx => {
    const keys = ctx.keys();
    const values = keys.map(ctx);
    const data = keys.map((key, index) => {
        // Create slug from filename
        const slug = key.replace(/^.*[\\\/]/, '').split('.').slice(0, -1).join('.');
        const value = values[index];
        // Parse document
        const document = matter(value);
        return {
            document,
            slug
        };
    });
    return data;
})(req);

我的文件夹结构是:

-config.js
-pages
  -blog.js
-posts
  -post-1.md
  -post-2.md

使用它时出现错误,显然在 require.context 中不允许上一个文件夹。您只能前进不能后退,因此../不允许使用双点。

TypeError: expected input to be a string or buffer

如何访问帖子文件夹?

标签: javascriptreactjswebpackmarkdown

解决方案


require.context 允许上一个文件夹../

错误来自

const document = matter(value);


推荐阅读