首页 > 其他分享 >解决Umi项目中的Markdown文件编译错误

解决Umi项目中的Markdown文件编译错误

时间:2024-03-02 10:45:01浏览次数:19  
标签:文件 markdown loader 编译 Webpack Markdown Umi

在基于 Ant Design Pro 的代码模板进行前端开发过程中,我对代码模板中的Markdown(.md)文件进行了修改后遇到了编译错误,在此记录下解决方法,如有错误,欢迎指正!

1. 问题描述

1.1 报错信息

在编译Umi项目时,遇到以下错误:

ERROR in ./README.md
Module build failed (from ./node_modules/@umijs/preset-dumi/lib/loader/index.js):
SyntaxError: [文件路径]: Missing semicolon. (3:13)

这表明Webpack尝试使用不适当的加载器处理Markdown文件

1.2 原因分析

  • 通常,这个问题发生的原因是Webpack配置中没有为.md文件指定正确的加载器,或者根本没有为这类文件指定加载器。

    • Webpack配置是一组指导Webpack如何处理项目中不同类型文件和资源的指令集。它涵盖了模块解析、文件加载、插件应用等多方面的设置
  • 在本项目中,原本代码中自带的 Markdown 文件能够成功编译的原因可能是因为这些文件仅包含了基本的文本或简单的Markdown 语法,这些被项目已配置的loader顺利处理(这意味着项目的Webpack配置已经能够应对基本的Markdown文件处理需求)

  • 然而,当我加入了复杂语法或代码块之后,原有的配置可能不再满足需求。如果这些新增加的内容需要特定的解析或处理逻辑,而相应的loader未被配置到Webpack中,就会导致编译失败。

  • 为了解决这一问题,需要在Webpack配置中明确指定一个或多个适合处理复杂Markdown文件的loader。

2. 解决步骤

2.1 安装 markdown-loader

由于Webpack缺少必要的加载器来处理Markdown文件,需要安装markdown-loader

  • npm 命令如下:
npm install markdown-loader --save-dev
  • 如果用的 yarn:
yarn add markdown-loader --dev

markdown-loader便是一个常用的解决方案,它能够将Markdown文件转换为HTML,甚至支持通过配置额外的loader(如html-loader)来进一步处理HTML内容

2.2 配置 Webpack

在Umi项目的配置文件中(我这里是在config/config.ts文件里修改),添加chainWebpack配置来指定markdown-loader

export default defineConfig({
  chainWebpack(config) {
    // 检查是否已经有针对 .md 文件的规则
    const rule = config.module.rules.get('markdown');
    if (rule) {
      // 如果规则存在,则清除现有的所有 loader
      rule.uses.clear();
    } else {
      // 如果规则不存在,则新建一个规则
      config.module.rule('markdown')
        .test(/\.md$/);
    }

    // 为 .md 文件添加正确的 loader
    config.module.rule('markdown')
      .use('markdown-loader')
      .loader(require.resolve('markdown-loader'));
  },
}

2.3 重启项目

更改配置文件后,需要重启Umi的开发服务器来使更改生效。

  • npm 命令:
npm start
  • 如果用的 yarn:
yarn start

成功启动:

3. 总结

Ant Design Pro 是一个企业级中后台前端/设计解决方案,它整合了 Umi 框架和 Ant Design 组件库,提供了一个完整的开发脚手架和设计语言:https://pro.ant.design/zh-CN

Umi 是一个可插拔的企业级前端应用框架,它基于 React,Umi 项目可以非常方便地集成Ant Design 组件库

  • Umi:一个完整的前端开发框架,提供路由管理、构建优化、插件系统等功能,适合用来搭建前端项目的基础架构。
  • Ant Design:一个UI设计语言和React组件库,专注于视觉设计和用户界面构建,用于实现美观、实用的界面设计。

遇到的 Markdown 文件处理问题强调了在开发过程中对构建配置的重要性和对特定文件类型处理的需求。通过正确配置 Webpack,可以确保所有文件类型都能被适当处理,从而避免编译时错误。

标签:文件,markdown,loader,编译,Webpack,Markdown,Umi
From: https://www.cnblogs.com/thr-0103/p/18048365

相关文章

  • Ubuntu编译安卓代码时tmp目录空间不足
    使用ubuntu编译安卓代码时,有些临时文件或目录是会被放到/tmp目录下的,如果自己环境的/tmp空间不够大,则会产生如下的编译错误: 查看自己/tmp目录使用情况,发现确实空间所剩不多: 解决方法一:修改TMPDIR系统环境变量。命令:export TMPDIR=新的绝......
  • MarkDown学习
    MarkDown学习标题34字体ctrl+b粗体;hello,world!ctrl+i斜体;hello,world!ctrl+u下划线hello,world!hello,world!引用选择狂神Java(>)分割线---or***图片超链接点击跳转列表A1.空格BCA-空格BC表格ctrl+t代码pub......
  • 使用Umi-OCR进行本地OCR文字识别
    在GitHub上看到了一个好用的OCR工具Umi-OCR,不仅支持批量导入图片、PDF文档识别而且开源免费,还能够在本地离线运行。可以说是为某些不适宜导入在线OCR应用的文档以及大体量本地OCR需求量身定做的软件。(顿时感觉自己的白描白买了)软件在线提供两种版本下载,区别在于一种内置的识别引......
  • Rust 交叉编译 macOS 为 Linux 和 Windows
    目录前言环境案例macOS编译为Linux和Windows可用二进制程序编译为Linux平台编译为Windows平台最后前言鉴于rust中文资料较少,遇到问题的解决方案更少。这里记录遇到的一些问题。Rust支持交叉编译,可以在macOS平台编译出Linux或者Windows可运行的程序,或者在Lin......
  • 使用vscode进行markdown编辑
    使用vscode进行markdown编辑从官网下载vscode下载地址如果下载的是安装程序,在安装过程中请勾选右键用vscode打开文件、文件夹选项,这样方便以后直接对文件夹和文件进行使用。因为我这里下载的是压缩包,不用安装直接用解压后文件夹中的Code.exe,导致对文件或文件夹右键时没有用vs......
  • 【rust】《 Rust安装并配置cargo国内源(提供rust编译器) 》
    下载Rust安装程序官网地址:https://www.rust-lang.org/tools/installWindow直接点击DownloadRustup-init.exe就可以下载运行程序。运行安装程序双击下载的rustup-init.exe程序,此时会弹出命令窗口命令窗口内输入1  ;1表示默认形式安装,Rust的环境变量会自动添加到系统......
  • Markdown效果测试
    Markdownlearning新学的Markdown,来看看效果!一、段落IreallylikeusingMarkdown.IthinkI'lluseittoformatallofmydocumentsfromnowon.二、换行方法一:Thisisthefirstline.Thisisthesecondline.方法二:Thisisthefirstline.Firstlinewithth......
  • 重装 Anguar出现编译错误
    问题:重装anguar,输入命令检查时,莫名出现以下错误,第一反应是安装问题,经过重装后,依然一样,百度找不出答案。问题解决:  1.根据路径查找,发现这里有个NG命令入口2. 在系统环境变量中,多了一条记录,但优先级底于旧的 3.把旧的变量记录往下移或删除,重新打开CMD窗口,正常!  ......
  • Markdown学习
    Markdown学习标题:#+空格加内容,最大六级标题每多1级多1“#“字体“****”加粗“**”斜体“~~”横线引用“>"+空格分割线“---”图片![名字]"()"网络图片右键审查元素超链接[名字]“(网站)”列表“-+空格”表格名字性别生日张三男1997代码......
  • arm64-ubuntu2204-opencv4.7.0源码编译
    参考:https://blog.csdn.net/weixin_43863869/article/details/128552342https://blog.csdn.net/weixin_39956356/article/details/102643415https://blog.csdn.net/quicmous/article/details/112714641 cdopencv-4.7.0 sudoapt-getinstallbuild-essentiallibgtk2.0-d......