+
+hero-cli使用[Webpack](http://webpack.github.io/)来进行项目的打包,相应的配置隐藏在工具内部,让开放者更关注与业务逻辑的开发。
+
+## 快速开始
+
+### 安装
+
+运行以下命令进行全局安装,安装后可以使用`hero`命令
+
+```sh
+npm install -g hero-mobile/hero-cli
+```
+
+**Node版本需要高于4.0,建议使用Node >= 6 和 npm >= 3**
+你可以使用[nvm](https://github.com/creationix/nvm#usage)来安装,管理多个Node版本,并可以方便地在各个版本间进行切换。
+
+### 创建Hero App
+
+使用`hero init`命令来初始化一个Hero App
+
+```sh
+hero init my-app
+cd my-app
+```
+
+该命令会在当前目录下创建一个`my-app`的目录并生成相应的项目代码,目录结构如下:
+
+```
+├── environments
+│ ├── environment-dev.js
+│ └── environment-prod.js
+├── platforms
+│ ├── android
+│ └── iOS
+├── public
+│ ├── ...
+│ └── favicon.ico
+├── src
+│ ├── ...
+│ ├── index.html
+│ └── index.js
+├── .babelrc
+├── .editorconfig
+├── .eslintrc
+├── .gitattributes
+├── .gitignore
+├── .hero-cli.json
+├── package.json
+└── README.md
+```
+在初始化的项目代码中, **以下文件或目录必须存在**:
+
+* `platforms` 存放Android/iOS原生代码
+* `src/index.html` 项目的HTML入口文件;
+* `src/index.js` 项目的JavaScript入口文件.
+* `.hero-cli.json` Hero App的配置文件。比如当用户运行`npm start`或`npm run build`(实际上在`package.json`中配置的调用的命令为`hero start -e dev` 和`hero build -e prod`)时,该加载哪些配置项。了解更多部署构建选项,点击查看[构建命令](#构建命令).
+
+其他:
+* `public` 该目录可以用来存放一个通用的资源,这些资源不会经过Webpack处理,而是直接复制到打包后的文件中
+* `src` 该目录存放的文件会被Webpack处理,可以把JS,CSS等文件放在这个目录
+* `environments` 存放不同环境的配置文件(该目录的路径可以在文件`.hero-cli.json`中配置),该配置文件中的值可以通过全局变量访问到。具体方法见[添加环境变量](#添加环境变量).
+
+你也许会发现HTML文件`pages/start.html`不存在,没错,该文件是生成出来的。详情见[动态生成HTML](#动态生成HTML)
+
+## 使用文档
+
+* [动态生成HTML](#动态生成HTML)
+* [添加环境变量](#添加环境变量)
+ * [JavaScript文件中引用环境变量](#JavaScript文件中引用环境变量)
+ * [HTML文件中引用环境变量](#HTML文件中引用环境变量)
+ * [Shell命令中添加环境变量](#Shell命令中添加环境变量)
+ * [`.hero-cli.json`文件中添加环境变量](#hero-clijson文件中添加环境变量)
+* [请求代理服务](#请求代理服务)
+* [构建原生App安装包](#构建原生App安装包)
+ * [Android](#android)
+ * [iOS](#ios)
+* [构建命令](#构建命令)
+ * [`hero start`](#hero-start)
+ * [`hero build`](#hero-build)
+ * [`hero serve`](#hero-serve)
+ * [`hero init`](#hero-init)
+ * [`hero platform build android`](`#hero-platform-build-android)
+
+### 动态生成HTML
+
+在`src`目录中的JS文件,如果满足以下2个条件
+
+* JS文件中存在`class`的类声明
+* 声明的`class`类被来自[hero-cli/decorator](https://github.com/hero-mobile/hero-cli/blob/master/decorator.js)的[Decorator](https://github.com/wycats/javascript-decorators/blob/master/README.md) `@Entry`所修饰
+
+则会经Webpack插件[html-webpack-plugin](https://www.npmjs.com/package/html-webpack-plugin)生成相应的HTML文件
+
+* 可以通过`@Entry(options)`指定HTML文件生成的选项
+* 默认情况下,该HTML文件生成后,访问的路径与当前JS的路径结构一致,你可以通过属性`path`来自定HTML访问的路径
+* 生成的HTML文件也可以访问环境变量。如何添加环境变量?点击查看[添加环境变量](#添加环境变量)。
+
+示例:
+
+##### 更多选项
+
+* `-e`