具有以下功能:

  • 创建依赖于CRN框架的模板工程
  • patch功能,一键修复React-Native源码中已知的一些bug
  • 一键编译代码,自动打开开发的RN页面,包含Android平台和iOS平台

安装 crn-cli

开发环境需要安装crn-cli工具,执行以下命令安装,即可得到全局可运行工具crn-cli

npm install @ctrip/crn-cli -g --registry=http://npm.dev.sh.ctripcorp.com:8001

或者

cnpm install -g @ctrip/crn-cli

创建工程

通过以下命令可以构建一个简单的工程,其中init后需要添加所需要构建的工程名称

crn-cli init 
<
ProjectName
>

说明:

  1. crn-cli创建过程与官方创建过程基本一致,不同在于没有生成android、ios工程文件,并添加CRN工程的一些文件;
  2. 由于CRN工程都依赖于携程主APP,相应的效果验证都需要运行在携程主APP中,因此省去了两个平台的工程文件即不生成android、ios工程文件,相应效果验证下文有介绍;
  3. 生成main.js文件,携程ReactNative工程都需屏蔽掉android、ios的Api调用差异,相应component、module等的调用方式、产生效果都保持一致,因此只需要写一份JavaScript代码,index.android.js与index.ios.js都依赖于main.js;

    'use strict';
    require('./main');
    module.exports = Example; //MCD打包需要,必须将component exports
    
  4. 对package.json文件做了相应修改,添加了依赖的携程APP版本号和快速运行脚本

    "appVersion": "6.18",
    ...
    "scripts": {
     "start": "crn-cli start",
     "android": "crn-cli run-android",
     "ios": "crn-cli run-ios"
    },
    

    新工程所依赖的RN版本需与基础crn库所依赖的RN版本保持一致,增加的脚本命令,使用便捷,相应运行效果也对官方配置做了调整;

  5. crn-cli工具需要保持和crn框架同步,因此增加了强制更新,更新命令为:

    npm uninstall @ctrip/crn-cli -g 
    &
    &
     npm install @ctrip/crn-cli -g --registry=http://npm.dev.sh.ctripcorp.com:8001
    

运行工程

在相应CRN工程目录下,执行以下命令可以运行已创建的CRN工程, 启动bundle下载服务

crn-cli start 
<
port
>

启动bundle服务,并在Android手机中打开携程APP并运行当前CRN工程

crn-cli run-android

crn-cli run-android  
<
port
>
<
query
>
<
app-version
>
<
ip
>

启动bundle服务,并在ios模拟器中打开携程APP并运行当前CRN工程

crn-cli run-ios

crn-cli run-ios  
<
port
>
<
query
>
<
app-version
>
<
ip
>
<
simulator
>

相关参数说明:

  --port            可修改服务端口,默认5389
  --query           传入启动bu的相应参数,形式为:key=value
&
key2=value2
  --app-version     启动相应的APP版本
  --ip              获取到的ip可能不是使用者所需,因此此处可指定本机ip
  --simulator       可指定打开的模拟器,默认为iPhone 6

使用注意事项:

  1. 以上命令所列出的参数都是可选择项,不填工具会使用默认参数,如node服务端口会默认使用5389等;
  2. 运行crn-cli创建的工程,会在工程根目录下生成tmp临时目录,该目录不会被git提交,如需重新初始化工具,删掉tmp目录即可;

crn-cli其他命令

crn-cli --version  //输出当前工具版本与依赖的RN版本

crn-cli -v  //输出当前工具版本与依赖的RN版本

crn-cli --help     //具体命令的帮助文档

crn-cli -h     //具体命令的帮助文档

使用CRN-CLI的收益

使用crn-cli脚手架工具开发App,具有以下好处:

  1. 对官方创建APP过程进行了调整比如默认使用携程npm源、安装@ctrip/crn依赖、工程结构修改、添加快捷脚本命令等等,从而可以快速构建APP工程;
  2. 开发过程中相应的服务部署、APP安装、效果验证,可以一条命令搞定,高效、快速;
  3. 由于工具仅仅只是对官方工具的整合,因此相应开发、调试、平台支持都与官方保持一致,没有影响;

results matching ""

    No results matching ""