# 快速开始
## 单文件方式
单文件版本可以快速启动 Orange 框架构建一个简单的 http 服务,
第一步:在 GOPATH 目录下创建一个目录 demo,并在目录中创建一个 main.go,写入代码:
~~~
package main
import "gitee.com/zhucheer/orange/app"
func main(){
router := &Route{}
app.AppStart(router)
}
type Route struct {
}
func (s *Route) ServeMux() {
app.NewRouter("").GET("/", func(ctx *app.Context) error {
return ctx.ToString("Hello world!")
})
}
func (s *Route) Register() {
}
~~~
第二步:安装依赖
如果 go 版本小于 1.13
```
window 下在 cmd 中执行:
set GO111MODULE=on
set GOPROXY=https://goproxy.cn
linux 下执行:
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
```
如果 go 版本大于等于 1.13
```
go env -w GOPROXY=https://goproxy.cn,direct
```
然后在项目目录下面执行命令
> go mod init // 初始化go mod 包管理
> go mod tidy // 加载依赖包
> go mod vendor // 将依赖包拷贝到项目目录中去
> go run main.go
以该方式启动仅作为演示或调试时使用,如果需要利用 Orange 构建一个 Web 服务产品,还请使用脚手架方式构建项目;
*****
## 脚手架方式
通过脚手架方式安装 Orange 可以生成一个完整的 mvc 目录结构,通过该方式可以构建一个完整的 http 服务项目。
### 安装
> 下载项目
`go get gitee.com/zhucheer/orange
`
### 创建一个新项目
```
> orange create project // 命令执行后将会在GOPATH/src目录下生成项目
```
如果出现 orange 命令不存报错在则需要将 GOBIN 添加到环境变量。
### 启动项目
- 通过 go mod 管理相关依赖, 如果 go 版本小于 1.12 需要手动开启 go mod 功能;
```
window 下在 cmd 中执行:set GO111MODULE=on
linux 下执行:export GO111MODULE=on
```
- go1.13版本环境通过配置env开启 go mod ,还需要添加代理配置;
```
//开启go mod
go env -w GO111MODULE="on"
// 添加国内代理
go env -w GOPROXY=https://goproxy.cn,direct
```
- 进入项目目录后依次执行下面的命令
> go mod init // 初始化go mod 包管理
> go mod tidy // 加载依赖包
> go mod vendor // 将依赖包拷贝到项目目录中去
> go run main.go [--config=config/config.toml] //启动项目 默认配置参数可以忽略,如配置文件位置改变可通过参数指定。
### 打包项目
> 配置好GOBIN环境变量,进入项目目录,然后执行如下命令:
> window: `orange.exe build`
> linux:`orange build`
> 打包命令默认会将程序打包到 build 目录下,打包好的程序可以直接运行,不依赖 golang 环境。