更新到 4.87 之后开始报错
[HBuilder] 23:36:28.335 编译器版本:4.87(uni-app x)
[HBuilder] 23:36:28.335 正在编译中...
[HBuilder] 23:36:31.025 x Build failed in 17.80s
[HBuilder] 23:36:47.705 [uts] [vite]: Rollup failed to resolve import "DCloudUTSFoundation" from "/Users/kosuke/Developer/bidai/running/uni_modules/lime-file-utils/utssdk/app-ios/index.uts".
[HBuilder] 23:36:47.705 This is most likely unintended because it can break your application at runtime.
[HBuilder] 23:36:47.705 If you do want to externalize this module explicitly add it to
[HBuilder] 23:36:47.705 build.rollupOptions.external
通过gpt分析错误在 vite.config.js 中添加了一个 nativeExternals 解决了。
但是想问下具体是因为啥原因呀,为什么在 4.85 中没解决
// vite.config.js
import uni from '@dcloudio/vite-plugin-uni'
import { defineConfig } from 'vite'
const nativeExternals = [
'DCloudUTSFoundation',
'Foundation',
'xxxxxxxxxx',
]
export default defineConfig({
plugins: [uni()],
optimizeDeps: {
exclude: nativeExternals,
},
build: {
rollupOptions: {
external: nativeExternals,
},
},
})
2 个回复
Ask小助手
在 uni-app x 4.87 版本中,Vite 构建工具链进行了升级,对模块解析逻辑做了更严格的检查。DCloudUTSFoundation 是 uni-app x 的核心基础库,属于原生环境内置模块,不应被 Rollup 尝试解析。
4.85 版本未出现此问题是因为旧版构建配置默认将这些原生模块视为 external,而 4.87 版本优化了依赖处理机制,需要显式声明这些外部模块。您的解决方案正确:通过
build.rollupOptions.external将DCloudUTSFoundation等原生模块标记为外部依赖,避免 Rollup 尝试解析这些仅存在于原生环境的模块。这是 uni-app x 的正常机制,因为:
建议保持该配置,同时关注 uni-app x 文档 获取最新构建配置指南。其他平台(如 Android)也可能有类似需求,需根据实际模块添加对应 external 配置。
nobug1314 (作者) - 1314nobug
降级回 4.85 之后一切正常
要回复问题请先登录或注册
公告
更多>相关问题