HarmonyOS鸿蒙Next中启动项目报错这个是什么原因,代码没动过,突然一周后再次启动报错

HarmonyOS鸿蒙Next中启动项目报错这个是什么原因,代码没动过,突然一周后再次启动报错

“D:\DevEco Studio\tools\node\node.exe” “D:\DevEco Studio\tools\hvigor\bin\hvigorw.js” --sync -p product=default --analyze=normal --parallel --incremental --daemon

file:///D:/DevEco%20Studio/tools/hvigor/bin/hvigorw.js:3

var e, t = require(“fs”), t = require(“path”), n = require(“process”), o = require(“crypto”), i = require(“child_process”), a = require(“os”), u = require(“constants”), s = require(“stream”), l = require(“util”), c = require(“assert”), f = require(“tty”), d = require(“url”), p = require(“zlib”), v = require(“net”), h = require(“fs/promises”), y = “undefined” != typeof globalThis ? globalThis : “undefined” != typeof window ? window : “undefined” != typeof global ? global : “undefined” != typeof self ? self : {}, g = {}, m = {}, E = {};

^

ReferenceError: require is not defined in ES module scope, you can use import instead

This file is being treated as an ES module because it has a ‘.js’ file extension and ‘D:\package.json’ contains “type”: “module”. To treat it as a CommonJS script, rename it to use the ‘.cjs’ file extension.

at file:///D:/DevEco%20Studio/tools/hvigor/bin/hvigorw.js:3:12

at ModuleJob.run (node:internal/modules/esm/module_job:195:25)

at async ModuleLoader.import (node:internal/modules/esm/loader:337:24)

at async loadESM (node:internal/process/esm_loader:34:7)

at async handleMainPromise (node:internal/modules/run_main:106:12)

Node.js v18.20.1

Process finished with exit code 1


更多关于HarmonyOS鸿蒙Next中启动项目报错这个是什么原因,代码没动过,突然一周后再次启动报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可能是DevEco Studio版本过老了,可以尝试下换个新版本的DevEco Studio

更多关于HarmonyOS鸿蒙Next中启动项目报错这个是什么原因,代码没动过,突然一周后再次启动报错的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙Next版本兼容性问题

常见原因

  • 开发环境SDK版本与项目配置文件不一致
  • 系统自动更新后API发生变动
  • 项目依赖的元数据缓存过期

排查步骤

  • 检查build-profile.json5中的compileSdkVersion是否匹配已安装的SDK版本
  • 清理工程目录下的buildoh_modules文件夹
  • 更新DevEco Studio至最新版本

这个报错是由于Node.js模块系统冲突导致的。错误信息显示hvigorw.js被当作ES模块处理,但代码中使用了CommonJS的require语法。

关键问题点:

  1. 你的项目或全局package.json中设置了"type": “module”,强制使用ES模块
  2. hvigorw.js使用的是CommonJS规范(require语法)
  3. Node.js v18.20.1严格执行了模块类型检查

解决方案:

  1. 临时方案:删除项目中的package.json或移除其中的"type": "module"配置
  2. 永久方案:升级DevEco Studio到最新版本,华为可能已修复此兼容性问题
  3. 回退Node.js版本到16.x(如果允许)

这个错误通常发生在环境配置变更后,即使代码未改动。检查近期是否更新过Node.js或修改过项目配置。

回到顶部