VS Code中运行Node.js出现Uncaught ReferenceError: require is not defined报错
报错
Uncaught ReferenceError: require is not defined 解决方案 报错原因
require 是 Node.js 专属的 CommonJS 模块加载语法,浏览器环境原生不支持该语法。你此前编码没有报错,是因为之前的代码都运行在 Node.js 环境(比如 json-server 的服务端自定义脚本),本次报错说明你当前的 JS 文件是在浏览器环境下加载执行的,或是 Node.js 环境的模块规范被修改为 ESModule 模式。
对应解决方案
- 如果你当前的 JS 文件仍需在 Node.js 环境运行(服务端脚本):
- 检查项目根目录的
package.json文件,是否新增了"type": "module"配置,该配置会强制 Node.js 使用 ESModule 规范,此时需要把导入代码修改为import lodash from 'lodash' - 确认你执行脚本的方式为
node 你的脚本文件名.js,而非直接将 JS 文件引入 HTML 页面在浏览器打开
- 检查项目根目录的
- 如果你当前的 JS 文件需要在浏览器环境运行:
- 改用 ESModule 导入语法:在 HTML 引入该 JS 的
<script>标签上添加type="module"属性,同时把导入代码修改为import lodash from 'lodash',如果没有打包工具,可直接导入公开的 lodash ESModule 格式资源 - 直接引入 UMD 格式的 lodash 包:在 HTML 中提前引入 lodash 的 UMD 资源,不需要额外写导入语句,直接在代码中调用全局暴露的
_对象即可 - 接入 vite、webpack 等前端打包工具,打包工具会自动转换
require语法、整合依赖资源,输出浏览器可正常执行的产物文件
- 改用 ESModule 导入语法:在 HTML 引入该 JS 的
内容的提问来源于stack exchange,提问作者rupiman
相关产品推荐
相关产品推荐

