項(xiàng)目推薦:快速生成一個(gè)全棧 Web 項(xiàng)目
今天推薦的這個(gè)項(xiàng)目叫 Goxygen,項(xiàng)目地址:https://github.com/Shpota/goxygen,Star 數(shù):2k。
Goxygen 致力于節(jié)省你搭建一個(gè)項(xiàng)目的時(shí)間。它自動(dòng)生成一個(gè)完全配置好的項(xiàng)目骨架,以方便你可以立即著手實(shí)現(xiàn)你的業(yè)務(wù)邏輯。Goxygen 生產(chǎn)后端的 Go 代碼,并將其與前端組件相連,并且為生成的項(xiàng)目提供 Dockerfile 和 docker-compose 文件,以便項(xiàng)目在開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境快速運(yùn)行起來(lái)。
支持的技術(shù):
Supported Technologies
Front EndAngularReactBack EndGo
DatabaseMongoDBMySQL
簡(jiǎn)單使用
注意,請(qǐng)使用 Go1.11+。
- go get -u github.com/shpota/goxygen
- go run github.com/shpota/goxygen init my-app
這會(huì)在你的 my-app 目錄下生成一個(gè)項(xiàng)目。
這個(gè)項(xiàng)目已經(jīng)可以用 docker-compose 來(lái)運(yùn)行了:
- cd my-app
- docker-compose up
之后,就可以在 http://localhost:8080 查看你的 Web 項(xiàng)目了。
你可以在生成的項(xiàng)目里的 README 里查看更多細(xì)節(jié)信息。
生成的項(xiàng)目的結(jié)構(gòu) (基于 React/MongoDB 的項(xiàng)目)。
- my-app
- ├── server # Go項(xiàng)目文件
- │ ├── db # MongoDB通信
- │ ├── model # 領(lǐng)域?qū)ο?nbsp;
- │ ├── web # REST APIs, web server
- │ ├── server.go # 后端入口
- │ └── go.mod # 后端依賴(lài)
- ├── webapp
- │ ├── public # icons, static files, 和 index.html
- │ ├── src
- │ │ ├── App.js # React main組件
- │ │ ├── App.css # App組件樣式
- │ │ ├── index.js # 前端應(yīng)用入口
- │ │ └── index.css # 全局樣式
- │ ├── package.json # 前端依賴(lài)
- │ ├── .env.development # 包含開(kāi)發(fā)環(huán)境的API endpoint
- │ └── .env.production # 包含生產(chǎn)環(huán)境的API endpoint
- ├── Dockerfile # 前后端build Dockerfile
- ├── docker-compose.yml # 生產(chǎn)環(huán)境的docker-compose
- ├── docker-compose-dev.yml # 開(kāi)發(fā)使用的docker-compose
- ├── init-db.js # 創(chuàng)建一個(gè) MongoDB collection,并寫(xiě)入測(cè)試數(shù)據(jù)
- ├── .dockerignore # 指明Docker build的時(shí)候要忽略的文件
- ├── .gitignore
- └── README.md # 如何使用生成repo的教程
注意 Goxygen 只是為你生成一個(gè)項(xiàng)目的基本框架,但不強(qiáng)迫你使用任何特定的工具。它不會(huì)為你的項(xiàng)目添加任何不必要的依賴(lài),僅有的依賴(lài)只有后端的 database driver 和前端的 axios。