You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用unpkg CDN引入highlight.js提示找不到cpp语言模块如何解决

问题成因

控制台抛出找不到cpp语言模块的警告,核心原因是highlight.js运行时没有加载到C++语言对应的解析规则,常见诱因有三个:

  • 资源版本不统一:引入的样式文件版本为11.5.0,核心JS文件版本为11.5.1,跨小版本的资源混用可能导致模块映射关系异常,无法正确识别内置语言
  • 资源加载失败:JS资源使用了协议相对路径//unpkg.com/...,如果本地直接打开HTML文件(走file://协议访问),会默认从本地磁盘路径查找JS文件,直接导致核心库加载失败
  • 缺少对应语言模块:highlight.js v11版本之后,默认引入的highlight.min.js为核心精简构建包,仅内置了极少部分高频语言,C/C++未被包含在默认包内,需要额外引入对应语言模块,或直接使用全量构建包
解决方案

按照以下步骤调整即可修复问题:

  1. 统一资源版本、补全协议头
    所有highlight.js相关资源使用完全一致的版本号,同时给CDN地址补全https:协议头,避免本地调试时出现资源加载失败问题。
  2. 按需选择资源引入方式,二选一即可:
    • 方案1(简单省事,适合个人站点):直接引入包含所有官方支持语言的全量构建包,无需单独加载各个语言模块,示例代码:
    <link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/rainbow.min.css">
    <script src="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js"></script>
    
    • 方案2(体积更小,适合对加载速度要求高的场景):保留核心精简包,单独引入自己需要用到的语言模块,以C++为例,示例代码:
    <link rel="stylesheet" href="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/styles/rainbow.min.css">
    <script src="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/highlight.min.js"></script>
    <!-- 单独引入C++语言模块,用到其他语言时按相同格式追加即可 -->
    <script src="https://unpkg.com/@highlightjs/cdn-assets@11.9.0/languages/cpp.min.js"></script>
    
  3. 确认初始化顺序
    将初始化代码<script>hljs.highlightAll();</script>放在所有highlight.js相关资源标签的最末尾,保证执行时核心库和语言模块已经全部加载完成。
  4. 检查代码块标记
    需要高亮的C++代码块,要给内部的<code>标签添加language-cpp类名,标准格式参考:
    <pre>
      <code class="language-cpp">
        // 此处写C++业务代码
      </code>
    </pre>
    

内容的提问来源于stack exchange,提问作者WindowsRegedit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 21:42:16