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。

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

相关推荐
葡萄城技术团队32 分钟前
1000 人协同压测的环境瓶颈排查:CPU 争用与 Wi\-Fi
前端
excel2 小时前
Marked 与 Markdown 有什么区别?该怎么选?
前端
Da Da 泓3 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
zxcvb1533 小时前
远程查看本地文档:一条轻量 Web 文件服务的工程化链路
前端·远程查看文档
niucloud-admin3 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
北岛贰4 小时前
啵啵音乐迎来全新升级!
前端
hkNaruto6 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册
前端·人工智能·游戏
IT_陈寒6 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
Acro6 小时前
快给macOS 上的Grok Bot换一套皮肤
前端
flash俊杰6 小时前
双引擎 OCR 编排:逐页判定、视觉优先、partial 语义与三层超时
前端