javascript - 如何使用 Webpack 在 JavaScript 中导入 Frontmatter 和 Markdown

标签 javascript node.js webpack markdown

我正在尝试使用 Markdown 编写的内容逐步构建 React 网站。

到目前为止,我一直在尝试导入带有 Frontmatter 的单个 Markdown 文件 进行渲染。

我试过了front-matter-loaderraw-loader ;都抛出错误:

/pages/home.md: Invalid left-hand side in prefix operation (1:2)
1 | ---
  |   ^   
2 | title: This is the home page  
3 | ---

这是我的简单 JavaScript 测试:

import home from '../pages/home.md';

console.log('testing');
console.log(home);

这是我在 webpack 配置中的加载器:

...
module: {
    rules: [
        { 
            test: /\.(js)$/, 
            use: {
                loader: 'babel-loader',
                options: {
                    presets: ['env'],
                    cacheDirectory: '.babel_cache'
                }
            }
        },
        {
            test: /\.md$/,
            use: 'raw-loader'
        }
    ]
},
...

我期望使用 raw-loader 的是一个字符串,然后我可以将其传递给 front-matter ,提取,然后使用 marked 呈现 HTML .但是,我显然无法正确地require/import 文件。我的下一个测试将是完全删除 webpack 加载程序并尝试使用 Node 的 fs 来读取文件。我想知道是否有人能够帮助我发现这里的任何错误。

我一直在想,front-matter-loader 根本不是一个复杂的文件 (view here),没有理由不加载该文件。

感谢您的任何见解。

最佳答案

来自阅读front-matter-loader docs ,看起来您需要通过 json-loader 传递来自 front-matter-loader 的结果,或者分别提取 front-matter 数据和 markdown。假设您已经安装了 json-loaderfront-matter-loaderraw-loader 包,以下可能有效。

通过 json-loader 在您的 webpack 配置中传递 front-matter-loader 结果:

    ...
    module: {
        rules: [
            ...
            {
                test: /\.md$/,
                use: ['json-loader', 'front-matter-loader']
            }
        ]
    },
    ...

分别提取前题数据和markdown:

var data = require('json!front-matter!../pages/home.md')
var content = require('raw!front-matter?onlyBody!../pages/home.md')

关于javascript - 如何使用 Webpack 在 JavaScript 中导入 Frontmatter 和 Markdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46535512/

相关文章:

macos - Mac npm 出现 ENOENT 错误

webpack - 如何启动并运行 webpack-serve?

javascript - 如何使用 turbilinks rails 4 添加此功能

javascript - 在 AngularJS 中将 JSON 元素转换为 Javascript 数组?

javascript - 如何使用无服务器部署功能,使其仅包含所需的文件夹/文件

node.js - Sequelize save() 问题

javascript - 将枚举(作为字符串)从 CAPS_CASE 转换为驼峰式

javascript - 通过中间件检查多权限

css - Webpack 在 SCSS @import SCSS 上抛出错误

Laravel Mix 和 Monaco 编辑器