Mac端iOS构建NativeScript应用报__UI_USE_EXTERNAL_RENDERER__未定义错误
错误原因
该报错是NativeScript 8.x及以上版本中,webpack构建阶段未正常注入全局标识__UI_USE_EXTERNAL_RENDERER__导致的,多由依赖版本不匹配、构建缓存残留触发。
可行解决步骤
- 对齐依赖版本
确认@nativescript/core和@nativescript/webpack的版本完全匹配,移除package.json中两个依赖版本号前的^标识符,避免自动升级小版本导致兼容问题。删除本地node_modules目录、package-lock.json或yarn.lock文件后重新执行安装命令。 - 手动补充全局变量配置
在项目的webpack配置文件中,找到DefinePlugin的配置项,添加以下变量定义:
new webpack.DefinePlugin({ __UI_USE_EXTERNAL_RENDERER__: false })
如果使用NativeScript默认生成的webpack配置,也可以在nativescript.config.ts中添加自定义webpack配置项注入该变量。
- 全量清理构建缓存
按顺序执行以下命令清理所有缓存:
ns clean rm -rf ~/.nativescript-cli
之后打开XCode,选择Product > Clean Build Folder清空XCode本地构建缓存,再重新执行构建命令。
- 对齐CLI版本
执行ns --version查看全局NativeScript CLI版本,和项目内@nativescript/cli的依赖版本保持一致,避免全局CLI和项目依赖版本不匹配导致构建规则异常。
内容的提问来源于stack exchange,提问作者Giovanni
相关产品推荐
相关产品推荐

