M2芯片Mac的Vagrant Ubuntu虚拟机运行sencha app watch报Fashion build错误码2
解决Vagrant Ubuntu虚拟机中Sencha Cmd
sencha app watch构建失败问题 问题描述
我是ExtJS新手,在搭载M2芯片的Mac系统上的Vagrant Ubuntu 22.04.1 LTS虚拟机中,使用Sencha Cmd 7.6.0.87创建ExtJS 7经典版项目时,执行sencha app watch命令出现构建失败,提示Fashion build exited with code : 2,日志显示Node存在未终止字符串的语法错误。本地Mac同版本环境运行正常,仅虚拟机出现该问题。
虚拟机环境信息
- 系统:Vagrant Ubuntu 22.04.1 LTS(aarch64架构)
- Node:v14.19.0
- npm:6.14.16
- OpenJDK:11.0.19 2023-04-18 LTS
- Ruby:3.0.2p107 (2021-07-07 revision 0db68f0233) [aarch64-linux-gnu]
- Sencha Cmd:7.6.0.87
操作步骤
- 执行
./SenchaCmd-7.6.0.87-linux-amd64.sh -Dall=true -q完整安装Sencha Cmd及所有扩展; - 执行
sencha app init --ext@7.6.0 --classic MyApp初始化经典版项目; - 执行
sencha app watch启动开发编译,触发错误。
解决方案
1. 处理Sencha Cmd内置Node与系统Node的冲突
Sencha Cmd自带Node环境,在aarch64架构下可能与系统安装的Node版本不兼容:
- 查询Sencha Cmd内置Node的路径:
sencha which node - 备份内置Node并创建软链接指向系统Node(替换为实际查询到的路径):
cd /path/to/sencha/cmd/node mv node node.bak ln -s /usr/bin/node node
2. 清理缓存并检查配置文件
- 执行缓存清理命令:
sencha app clean - 检查项目自动生成的
app.json、build.xml等配置文件,确认所有字符串引号闭合、无语法错误;同时确保项目路径不含中文或特殊字符。
3. 适配aarch64架构的Node版本
Sencha Cmd 7.6.0.87对aarch64架构下的Node 14.19.0兼容性可能存在问题,可尝试升级到14.x最新稳定版:
# 安装nvm(若未安装) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc # 安装并使用Node 14.21.3 nvm install 14.21.3 nvm use 14.21.3
完成后重新执行sencha app watch。
4. 临时禁用Fashion构建
若以上方法均无效,可临时禁用Fashion以继续开发:
sencha app watch --fashion false
或修改项目app.json中development构建配置,添加"fashion": false。
内容的提问来源于stack exchange,提问作者Yanguo Cao
相关产品推荐
相关产品推荐

