HarmonyOS鸿蒙Next中一直提示node异常,我本地是使用nvm安装了node,找不到匹配的

HarmonyOS鸿蒙Next中一直提示node异常,我本地是使用nvm安装了node,找不到匹配的

"F:\DevEco Studio\tools\node\node.exe" "F:\DevEco Studio\tools\hvigor\bin\hvigorw.js" --sync -p product=default --analyze=normal --no-parallel --incremental --no-daemon

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

var e, t = require("fs"), r = 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"), g = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}, y = {}, 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 'F:\package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.

    at file:///F:/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中一直提示node异常,我本地是使用nvm安装了node,找不到匹配的的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

根据日志信息:This file is being treated as an ES module because it has a ‘.js’ file extension and ‘F:\package.json’ contains “type”: “module”. To treat it as a CommonJS script, rename it to use the ‘.cjs’ file extension.,可以获知是package.json文件报错。

检查电脑F盘是不是有个多余的一个package.json文件,此文件为错误文件,导致项目运行报错,可以把这个文件删除试试。

更多关于HarmonyOS鸿蒙Next中一直提示node异常,我本地是使用nvm安装了node,找不到匹配的的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


嗯嗯可以了

在HarmonyOS Next中,node异常通常由nvm管理的Node.js版本与鸿蒙环境不兼容导致。鸿蒙Next对Node.js版本有特定要求,nvm安装的版本可能未适配。请检查并切换至鸿蒙支持的Node.js版本,确保环境变量配置正确。若问题持续,需确认鸿蒙开发工具链是否完整安装。

这个错误是因为你的项目配置了 ES 模块("type": "module"),但 DevEco Studio 自带的 hvigorw.js 脚本使用的是 CommonJS 的 require 语法,两者不兼容。

解决方法:

  1. 检查项目根目录下的 package.json,如果包含 "type": "module",请删除这一行或改为 "type": "commonjs"
  2. 如果项目必须使用 ES 模块,可以尝试将 hvigorw.js 重命名为 hvigorw.cjs,使其被识别为 CommonJS 模块。
  3. 确保 DevEco Studio 使用的是自带的 Node.js 版本,而非通过 nvm 安装的版本。在设置中检查 Node.js 路径,指向 DevEco Studio 安装目录下的 node.exe。

优先推荐第一种方法,修改 package.json 的模块类型配置即可解决问题。

回到顶部