New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

crn-cli

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crn-cli

The Ctrip React Native CLI Tools

  • 0.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
20
decreased by-31.03%
Maintainers
1
Weekly downloads
 
Created
Source

CRN-CLI

crn-cli脚手架对RN原始的CLI进行二次包装,提供从工程创建,服务启动,在已集成框架的App运行RN代码等常用功能,方便开发人员快速上手。

Commands:
   init                   建立并初始化CRN工程,基于React Native 0.59.0,React 16.8.3
   start                  启动CRN服务,默认端口8081
   run-ios                启动IOS模拟器,运行App
   run-android            运行Android App
   pack                   打包,生成common包和biz包
Options:
   -h, --help             显示命令帮助
   -v, --version          显示版本

安装及使用

安装

$ npm install -g crn-cli

创建工程

$ crn-cli init CRNDemo

CRNDemo工程结构说明:

├── android               //android源码工程
├── ios                   //ios源码工程
├── App.js                //JS源码
├── app.json              //JS工程名配置文件
├── babel.config.js       //babel配置文件
├── icon.png              //图片资源
├── index.js              //JS入口文件
├── package.json          //工程配置文件
├── crn_common_entry.js   //common包入口文件
├── rn-cli.config.js      //rn cli配置文件
├── metro.config.js       //metro配置文件
├── .buckconfig           //buck配置文件
├── .flowconfig           //flow配置文件
├── .gitattributes        //git配置文件
├── .gitignore            //git配置文件
├── .watchmanconfig       //watchman配置文件

运行工程

进入目录运行项目

$ cd CRNDemo
$ crn-cli run-ios     #在iOS模拟器上运行Demo
$ crn-cli run-android #在Android真机上运行Demo

说明:

  1. 本地启动server的模式运行,默认端口8081。
  2. iOS开发环境依赖Node、Watchman 和 React Native 命令行工具以及 Xcode。
  3. Android开发环境依赖Node、Watchman 和 React Native 命令行工具以及 JDK 和 Android Studio。
  4. 首次执行需要build native源码,过程会比较慢。

打包

配置

在当前工程目录下package.json中配置打包参数。

  "packConfig": {
    "entryFile": "index.js",       //打包入口文件
    "bundleOutput": "publish",     //打包产物输出目录
    "packageName": "CRNDemo",      //包名     
    "dev": false                   //打包环境
  }

1.执行打包命令

进入工程目录执行

$ crn-cli pack

打包完成后会生成publish文件夹,目录如下:

├── publish
    //框架包rn_common目录结构
    ├── rn_common
        ├── common_android.js   /Android 框架代码,包括RN组件
        ├── common_ios.js       //iOS 框架代码,包括RN组件
        ├── baseMapping.json    //common模块ID映射表
        ├── pack.config         //打包日志文件,记录打包时间,RN版本
    //业务包rn_CRNDemo目录结构
    ├── rn_CRNDemo
        ├── assets               //资源目录,定制过资源打包/加载流程,iOS/Android目录一致
        ├── js-diff              //Android和iOS平台差异代码,Android优先加载该文件夹中的业务代码
        ├── js-modules           //业务js代码目录
        ├── _crn_config_v2       //配置文件,记录业务代码所在文件夹,默认是js-modules,同时记录业务代码入口模块文件名
        ├── _crn_unbundle        //CRN打包格式标识文件,该文件存在时候,才当做CRN包格式加载
        ├── buMapping.json       //业务模块ID映射表
        ├── pack.config          //打包日志文件,记录打包时间,RN版本

rn_common为框架包,可以在后台线程加载,业务包在进入业务的时候才开始加载。

2.拷贝打包产物到APP中

拷贝rn_common,rn_CRNDemo./ios/CRNDemo/webapp./android/app/src/main/assets/webapp目录下。

3.运行APP访问页面

CLI运行
$ crn-cli run-ios --url /rn_CRNDemo/_crn_config?CRNType=1+CRNModuleName=CRNDemo
$ crn-cli run-android --url /rn_CRNDemo/_crn_config?CRNType=1+CRNModuleName=CRNDemo

参数说明:CRNType,CRNModuleName必传

IDE运行

xcode打开./ios/CRNDemo.xcodeproj工程,运行

Android Studio导入./android工程,Run

Keywords

FAQs

Package last updated on 12 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc