HBuilderX 4.87 无法正常读取 macOS 环境配置的解决方案

我的电脑配置是 macOS Sequoia 15.6.1(M2 芯片)。最近使用 HBuilderX 4.87 打包 APP 时出现卡住、无法正常打包的问题。本文给出解决方案。

隔了几个月,最近要用 uni-app 打包一下 APP。我像之前那样打开了 HBuilderX,更新并打包 Android APP,却发现提示我需要配置 Node.js。

我很奇怪,我都是用 fnm 管理 Node.js,几个项目 Node.js 用得好好的,没啥问题啊,为什么会这样呢?🤔

我百思不得其解,直到我打开了 HBuilderX 提示的 关联链接

Hbuilder X 从 4.41 版本开始调整 cli 项目使用本地的 node 执行编译,如果用户未安装并正确配置 Node.js 会警告报错。
目前只从 bash 中读取环境变量,需要确保配置到 bash 中

Bro,从 4.41 版本更新到 4.87 版本,还是不能从 macOS 10.15 开始默认使用的 zsh 读取环境变量,体验真是太差了。😅

我搜索了 DCloud 论坛里面,有好哥哥提到将 ~/.zshrc 里的内容复制粘贴到 ~/.bash_profile 就能用了。如果你感兴趣可以尝试一下这个方案,但我尝试时发现还是会卡住无法继续,HBuilderX 日志提示 fnm 不存在。

进一步地,如果我去掉了 ~/.bash_profile 里面的 fnm,只是按照官方指南那样设置 Node.js PATH,仍然没办法正常使用。

shell 复制代码
# HBuilderX
export PATH="$PATH:$HOME/Library/Application Support/fnm/aliases/default/bin"

# Android Studio
export ANDROID_HOME=$HOME/Library/Android/sdk
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/emulator
export PATH=$PATH:$ANDROID_SDK_ROOT/tools
export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools

# Java
alias use-java17='/usr/libexec/java_home -v 17 --exec java -version'
alias use-java8='/usr/libexec/java_home -v 1.8 --exec java -version'

直到我偶然设置了全局的 Node.js 版本,重启 HBuilderX,结果可以正常打包了!但如果我去掉 ~/.bash_profile 里面的 Node.js PATH,重启 HBuilderX,又没法正常打包了!

我综合几次实验,得出的结论是,~/.bash_profile 里面 Node.js PATH 只起到了一个欺骗 HBuilderX 的作用,并不会使用里面 PATH 对应的 Node.js,实际上使用的是 fnm 在全局设置的 Node.js。我完全无法理解这种事情,也不好说这是 fnm 的弊端,还是 HBuilderX 的缺陷 😱

如果你尝试好哥哥的方案无法正常运行,那可以尝试一下我的方案:

  1. 设置 ~/.bash_profile,如上所示;
  2. 切换到 ~ 目录下,运行一下 fnm use [打包项目所需的 Node.js]
  3. 重启 HBuilderX,打包 APP。

希望对你有所帮助!元旦快乐!

相关推荐
qetfw1 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯1 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能
a1117761 小时前
微光小屋-前端养成小游戏 开源项目
前端
kyriewen1 小时前
我让AI给前端项目做了一次完整的Code Review——它和人类的差距,比我想的大得多
前端·javascript·ai编程
张鑫旭1 小时前
快速过下我2026年上半年的前端学了些啥
前端
এ慕ོ冬℘゜2 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
hoLzwEge2 小时前
拯救低效调试!code-inspector-plugin 让代码定位如虎添翼
前端·前端框架·node.js
J船长2 小时前
烂笔头扫盲:LLM Eval 入门:从「感觉挺好」到「数据说话」的工程化落地
前端
skiyee2 小时前
被多个 UView 系 UI 库 “抄” 的 @uni-ku/root 究竟怎么实现?
前端