使用 Hbuild 快速構建生成現代化前端項目
在前端項目日漸複雜的今天,搭建腳手架,配置項目環境等都有著一定的成本,有沒有更簡單且一勞永逸的方法呢?
Hbuild是一套結合cli命令行以及項目模板的工具,通過命令行的方式實現快速構建,使得整套開發的成本大為下降,同時它還提供了三套項目模板(h5,vue全家桶,React),可在本地環境自由定製。(由於時間原因,react全家桶,更多的模板引擎,預處理器等後續支持)
Hbuild使用
hbuild-cli
命令行工具,全局註冊後可快速生成項目啟動套件。你可以使用Hbuild生成一個h5項目,或者vue項目(默認搭配vue-router,可自由選擇vuex),或者react項目。該套件包含如下特點:
Features
Vue2 / Vue-Router / Vuex
Hot reloading for single-file components
Webpack 2
ES6
LESS
SASS
React
zepto
autoprefixer
mock server
eslint
Support for building multi-page applications
offline mode support
file hash
其中zepto是默認全局引入的,可直接使用。h5項目默認引入ejs模板引擎。默認支持Babel轉碼。支持HMR。支持文件hash,以解決緩存問題。
Get Started
You"d better have node >=4 and npm >=3 and gulp >=3.9 installed:
$ npm install -g hbuild-cli $ hbuild init new-project $ //or use $ h init new-project //support short command$ cd new-project $ npm install || yarn# edit files and start developing$ npm run dev# bundle all scripts and styles for production use$ npm run prod# lint your js code$ npm run eslint
Local Templates
when you clone this project,you can use a template on your local file system:
命令
$ npm run dev;//本地開發模式,連接mock數據$ npm run dev-daily;//本地開發模式,連接daily日常環境數據$ npm run dev-pre;//本地開發模式,連接預發環境數據$ npm run daily;//線上日常構建模式,連接daily日常環境數據$ npm run pre;//線上預發構建模式,連接預發環境數據$ npm run prod;//線上構建模式,連接線上環境數據$ npm run eslint;//js代碼審查,默認檢查除lib文件夾下的js代碼
使用如下命令行快速生成前端項目啟動套件:
編譯
1.js代碼默認採用Babel編譯,webpack打包構建。
2.編譯後的html文件默認輸出到
build/pages
目錄下,html文件名採用其在
src/pages
下的父級目錄的文件名
3.編譯後的靜態資源文件(圖片,字體,js文件等)存放到
build/static
目錄下,編譯支持文件hash,解決緩存問題
4.支持代碼熱替換,熱替換失敗會自動刷新整個頁面
HTML
1.h5項目的頁面默認採用ejs模板引擎和zepto,可直接使用。
2.當你執行發布線上的命令時,html和js代碼會被壓縮
3.當你在pages下新建一個目錄時,html文件需要手動配置一下靜態資源的引用
CSS
1.支持css預處理器LESS和SASS,後續逐步支持其他css處理器
2.默認採用
css-in-js
的方式,可在
文件中配置是否單獨提取css,提取出的css文件名稱默認為:
[name].extract.css
3.支持 屏幕適配方案,採用
media-query+rem
的方式,默認在
common.less
文件中
4.支持postcss和
autoprefixer
其他
mock:mock 數據只需要介面URI路徑和mock目錄保持一致即可
介面:介面如需根據環境來替換,需在
文件和
common/js/config
文件進行配置
支持多入口文件,可在pages下新建目錄,文件名需以index開頭
字元串替換:
$$_CDNPATH_$$
會被編譯替換為
build/static/hash串
目錄
入口文件:腳手架默認會讀取pages目錄下的index開頭的js文件為入口文件,名稱是寫死的
修改默認文件夾的名稱,需要在
文件就對應文件變數做修改
提取CSS以及sourceMap功能只在非開發模式下進行。
目錄結構
.
├── README.md
├── gulpfile.js # gulp文件
├── mock # mock數據目錄,保持和介面一樣的路徑即可
│ └── h5
├── package.json
├── src # 源文件
│ ├── assets # 靜態資源目錄,存放圖片或字體
│ │ └── logo.ico
│ ├── common # 共用代碼目錄,css目錄存放公用css部分,js同理
│ │ ├── css
│ │ │ ├── common.less
│ │ │ └── common.scss
│ │ └── js
│ │ ├── api.js # api文件
│ │ ├── config.js # 配置文件
│ │ └── util.js # 工具函數文件,可將公用方法存放於此
│ ├── components # 組件
│ │ ├── counter # 計數器vue組件
│ │ │ └── index.vue
│ │ ├── index # vue組件的入口文件
│ │ ├── meta # h5 meta頭部信息模塊
│ │ │ └── index.html
│ │ ├── router # vue路由模塊
│ │ │ └── router.js
│ │ └── store # vuex store模塊
│ │ └── store.js
│ ├── lib # 第三方庫
│ └── pages # 頁面
│ └── index # 首頁目錄,可在pages目錄下新建多個目錄結構,作為多入口文件
│ ├── index.html
│ ├── index.js # index.js/index.jsx文件為webpack的入口文件
│ ├── index.jsx
│ ├── index.less # 樣式文件在js文件中引入,可設置是否提取出css文件
│ ├── index.scss
│ └── module # 頁面模板模塊,可在index.js/jsx文件引入該模塊文件
│ ├── main.jsx
└── yarn.lock
歡迎大家加入相互學習交流!共同進步!
我個人微信公眾號:歡迎大家關注下:
名稱:U世界的V夢想
二維碼:


TAG:U世界的V夢想 |
※使用以 Tensorflow 為後端的 Keras 構建生成對抗網路的代碼示例
※自動生成高效DNN,適用於邊緣設備的生成合成工具FermiNets
※學界 | 自動生成高效DNN,適用於邊緣設備的生成合成工具FermiNets
※React代碼生成器
※Google Brain提出新型生成建模演算法MemGEN:只需記憶,性能突出
※送給前端的你:可視化快速生成模擬數據服務——Easy Mock
※TensorFlow官方力推、GitHub爆款項目:用Attention模型自動生成圖像字幕
※ASWCrypter:該工具生成的Payload可以繞過目前所有的反病毒產品
※使用 Lets Encrypt 生成免費的 SSL 證書
※正經的我,做了個不正經的項目 —— Pornhub 風格 Logo 生成器
※Oculus Home將推出多人遊戲和用戶生成內容
※OpenAI「假新聞」生成器GPT-2的最簡Python實現
※用 Pandoc 生成一篇調研論文
※CodeWarrior IDE使用Tips-使用burner將elf文件轉換生成HEX和BIN文件的方法和步驟詳解
※Mybatis+velocity自動生成代碼
※C代碼不用寫了!可以一鍵生成了!——Element Studio 重大升級
※Pelican 入門:一個 Python 靜態網站生成器
※Additive Works推出用於生成3D列印支撐的新Amphyon模塊
※Linux密碼生成器
※SpringMVC,Spring,Hibernate框架自動生成器