用途:在 Expo React Native 应用中搭建、修复并使用 NativeWind v4 与 Tailwind CSS v3 构建组件。该技能刻意限定为 v4;官方站点将 v5 标为预发布,v5/Tailwind v4 属于另一套配置,不能直接套用这些文件。编辑前应检查 lockfile,并保持依赖主版本明确。
主要能力:建立协调的 v4 配置,包括 nativewind@^4 与 tailwindcss@^3.4.17、通过应用 Expo SDK 解析原生 peer 依赖、nativewind/preset 与覆盖全部完整工具类字符串来源的 content globs、使用 Tailwind v3 指令的单一 CSS 入口并同时接入 Metro 的 withNativeWind input 和真实应用入口、在 Babel presets 中加入 nativewind/babel 并在 babel-preset-expo 上设置 jsxImportSource: "nativewind"、以及引用 nativewind/types 的 nativewind-env.d.ts。保留无关的 Metro 包装器、Babel 插件、配置插件和项目模块格式,不整体替换可运行应用的配置,也不安装第二套不兼容的 Reanimated/Worklets 栈。
使用方式:先读取 package.json、lockfile、实际应用入口、Expo 配置、Babel 配置、Metro 配置、Tailwind 配置和 CSS 入口,区分 Expo Router 与经典入口,并考虑 src/app、monorepo 或自定义项目根目录。调试时先核对解析后的依赖主版本和首个实际错误,用项目安装的 Tailwind v3 CLI 编译 CSS 入口,检查 content globs、静态类字符串和 NativeWind preset,确认 CSS 文件、Metro input 与应用导入指向同一文件,合并必要的 Babel/Metro 集成后用 npx expo start --clear 重启 Metro,并在各目标平台测试明显的布局、文本、颜色改动。构建组件时使用字面量 variant 映射,避免扫描器无法识别的动态类名拼接;仅在需要 remapProps 或 cssInterop 时参考第三方组件文档,且只配置一次互操作。
适用场景与限制:适用于明确为 v4 的 Expo 项目配置、排错和组件开发。需注意 web 渲染成功不能证明原生互操作正常;添加安全区 provider 前应检查现有实现,Expo Router 通常提供根集成,独立原生根或模态边界可能需要自己的 provider。验证时应运行类型检查和 Expo 依赖检查,编译或打包实际目标,并在可用环境中检查原生与 web 渲染,覆盖深色模式、禁用/按下状态、字体缩放、安全区和受影响的第三方组件。报告需包含解析后的依赖版本、改动文件和实际测试平台;静态配置检查不等于设备测试。资料未提供具体价格、平台支持范围或效果保证。