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

使用Hugo框架js.Build功能时遇Uncaught ReferenceError: require is not defined错误求解决

解决Hugo js.Build中"Uncaught ReferenceError: require is not defined"的问题
  • 调整js.Build输出为ES模块
    在Hugo配置文件(hugo.toml/hugo.yaml/hugo.json)中修改js.Build配置,指定输出格式为ES模块:
    以toml格式为例:

    [build]
      [build.js]
        format = "esm"
    

    编译后的JS会自动用import/export替代require,适配浏览器环境。

  • 替换代码中的CommonJS语法
    自己的JS代码里如果直接写了require(),改成ES模块的import语法。比如把const _ = require('lodash')改成import _ from 'lodash',同时确保依赖包支持ES模块(多数现代包都支持)。

  • 确认使用Hugo Extended版本
    js.Build功能仅支持Hugo Extended版本,运行hugo version查看版本标识,确保带有extended字样,否则重新下载安装Extended版本。

  • 模板中正确引用JS
    在Hugo模板里引用编译后的JS时,给script标签加上type="module"属性:

    <script type="module" src="{{ resources.Get "js/main.js" | js.Build | relURL }}"></script>
    

    让浏览器以ES模块方式解析脚本,避免require未定义的报错。

  • 清理缓存重新构建
    旧缓存可能导致配置不生效,运行hugo clean清理缓存,再执行hugo server或hugo build重新构建项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:25:54