The global ** (Expo)has been superseded by ‘npx **(expo)‘ and eas-cli,npx npm install安装

首先,提到旧版的expo-cli不支持Node +17,建议迁移到版本化的Expo CLI,也就是npx expo。都详细介绍了新的@expo/cli,说明它更轻量、更快,并且是作为expo包的一部分,通过npx expo来运行,取代了全局安装的旧版cli。和讨论了如何解决旧版cli的问题,比如卸载全局安装的expo-cli,改用本地npx expo。也提到现代的Expo CLI已经集成在expo包中,不需要单独安装,用npx运行即可。

然后,用户的问题里提到eas-cli,和提到eas-cli是用于构建和提交应用的工具,和新的Expo CLI一起使用。也提到EAS是Expo Application Services的一部分,负责构建和部署应用。

综合这些信息,可以总结出:旧版全局expo-cli已经被弃用,现在推荐使用npx expo来执行命令,同时结合eas-cli进行应用构建和部署。迁移步骤包括卸载旧版cli,使用npx expo start等命令,同时可能需要调整项目配置以适应新的CLI版本。此外,新版的CLI更符合Node.js标准,支持更多现代功能,如预构建、本地运行等,提升开发体验。

需要注意的是,部分证据可能存在时间上的差异,比如是2023年的,而其他资料如是2025年的,可能更新更准确。但根据大多数较新的证据,可以确定迁移到npx expo和eas-cli是当前推荐的做法。另外,和提供了具体的命令示例,比如npx expo run:android等,说明新CLI的具体用法。

Expo CLI 的演进和迁移路径可以总结如下:

1. 旧版全局 Expo CLI 已被取代

  • 旧版全局安装的 expo-cli 存在兼容性问题(如不支持 Node.js 17+ 版本),且官方已明确推荐迁移到新版本地化 CLI npx expo,同时结合 eas-cli 进行应用构建和部署。
  • 新版 CLI 作为 expo 包的一部分,无需全局安装,直接通过 npx expo 调用,更符合 Node.js 标准并提升开发体验。

2. 新版 CLI 的优势

  • 轻量高效:新版 @expo/cli 更轻量,启动速度更快,专注于核心功能(如启动开发服务器、预构建、运行应用等)。
  • 本地化版本控制:通过 npx expo 使用项目本地安装的 CLI 版本,避免全局版本冲突,尤其适用于 SDK 46 及以上项目。
  • 功能增强
    • 支持安全的 Manifest 签名和认证。
    • 集成预构建(npx expo prebuild)生成原生代码,长期兼容性更好。
    • 提供调试工具、环境变量支持、自动化端口检测等。

3. 迁移步骤

  • 卸载旧版 CLI
  npm uninstall -g expo-cli  # 或使用 yarn global remove expo-cli[[8, 20]]
  • 使用新版 CLI
    • 初始化项目:npx create-expo-app
    • 启动开发服务器:npx expo start(替代旧版 expo start)。
    • 构建和运行原生应用:npx expo run:androidnpx expo run:ios
  • 依赖管理:通过 npx expo install 安装兼容版本的库。

4. 结合 EAS-CLI

  • 构建与部署eas-cli 用于云构建(如 eas build)和提交应用到商店,与新版 Expo CLI 协同工作。
  • 自动化流程:支持持续集成(CI)和自动化测试,降低多平台维护成本。

5. 注意事项

  • Node.js 版本:建议使用 Node.js 16.x 以避免兼容性问题(M1 用户可通过 nvm 管理版本)。
  • 项目升级:旧项目可通过 npx expo upgrade 迁移到最新 SDK。
  • 功能限制:部分高级功能(如 expo-dev-client)需配合 Expo Modules API 使用。

总结

Expo 生态已全面转向以 npx expo 为核心的新 CLI 体系,搭配 eas-cli 实现端到端开发流程。这一变化提升了工具链的稳定性和开发效率,同时减少环境配置的复杂性。开发者应尽快迁移至新版工具,以充分利用 Expo 的最新功能。


相关知识:npm全局安装与npx安装包方式,为什么现在要用npx

npm(Node Package Manager)和npx(Node Package eXecute)是Node.js生态中两个互补的包管理工具,但定位和使用场景有显著差异。以下从两者的定义、优劣势到为何推荐使用npx进行详细分析:


1. npm与npx的基本定义

  • npm:是Node.js的默认包管理器,用于安装、管理和发布JavaScript包。支持两种安装方式:
    • 全局安装:通过npm install -g <package>将包安装到系统路径(如/usr/local/bin),全局可用。
    • 本地安装:通过npm install <package>将包安装到项目的node_modules目录,仅在当前项目可用。
  • npx:是npm 5.2.0+版本内置的包执行工具,核心功能是直接运行包的命令,无需事先全局或本地安装。其运行逻辑为:
    1. 检查本地node_modules/.bin是否有该包。
    2. 若无,则从远程仓库下载最新版本到临时缓存,执行后自动删除。

2. npm与npx的优劣势对比

npm全局安装的优缺点
  • 优势
    • 全局命令随处可用(如vue create)。
    • 适合频繁使用的工具(如webpackeslint)。
  • 劣势
    • 版本冲突:全局只能安装一个版本,不同项目可能需不同版本。
    • 权限问题:某些系统需管理员权限才能全局安装。
    • 污染全局环境:长期积累未使用的包占用磁盘空间。
npx的优缺点
  • 优势
    • 避免全局安装:临时下载并执行包,减少全局污染。
    • 灵活使用版本:可指定版本(如npx webpack@4)或默认使用最新版。
    • 简化流程:直接运行未安装的包(如npx create-react-app无需先全局安装)。
  • 劣势
    • 首次执行需下载:依赖网络,可能增加等待时间(后续执行利用缓存)。
    • 不适合高频使用:频繁调用同一包时,临时下载效率低于全局安装。

3. 为何现在推荐使用npx?

解决全局安装的痛点
  • 避免版本冲突:例如,项目A需webpack@4,项目B需webpack@5。若全局安装,只能保留一个版本;而npx允许按需使用特定版本,互不干扰。
  • 减少权限问题:某些环境下(如CI/CD或受限系统)无法全局安装,npx通过临时缓存绕过此限制。
提升开发效率
  • 简化一次性命令:如初始化项目(npx vite)、执行脚本(npx eslint),无需预先安装。
  • 兼容本地与全局:优先使用项目本地安装的包,确保环境一致性。例如,若项目本地安装了webpacknpx webpack会直接调用本地版本。
优化项目维护
  • 减少依赖声明:临时使用的包无需写入package.jsondependencies,保持项目依赖清晰。
  • 降低协作成本:团队成员无需同步全局环境,通过npx确保命令执行的一致性。

4. 典型应用场景

  1. 创建新项目npx create-react-app my-app(无需全局安装create-react-app)。
  2. 执行测试工具npx mocha --version(本地安装后直接调用)。
  3. 使用不同版本包npx webpack@4.44.0(指定历史版本)。
  4. 临时运行脚本npx http-server(快速启动本地服务器)。

总结

npx的核心价值在于“按需使用” ,尤其适合临时命令、多版本需求及环境隔离的场景。而npm全局安装仍适用于高频使用的工具(如npmyarn)。两者结合使用,既能保持开发效率,又能减少环境冲突,是现代Node.js开发的推荐实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GISer_Jinger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值