想要快速開始 react 多頁面應用?css
項目結構如何更合理?node
想要快速上手 Mobx?react
想要快速使用 TypeScript?webpack
想要一鍵使用 Ant-Design 並能快速自定義主題樣式?git
能夠的!!!github
這裏,受 Vue-cli 和 create-react-app 的啓發,我作了這樣一個 react 的腳手架 handy-cli,讓你一鍵搭建項目,快速開始。web
使用npm安裝: npm install handy-cli -g 使用yarn安裝 yarn global add handy-cli
handy create <new-app> cd <new-app> npm run start
運行handy create you-app-name
(例如選擇了 ant-design、eslint、mobx),handy-cli 會生成以下項目結構npm
├── node_modules ├── public ├── modifyVars.json ├── package.json ├── readme.md ├── .eslintrc ├── .gitignore └── src ├── components │ ├── ResultItem │ │ └── ResultItem.js │ └── Scroll │ └── Scroll.js ├── modules │ └── mobxGitSearch │ ├── components │ │ ├── ResultList │ │ │ └── ResultList.js │ │ └── Search │ │ └── Search.js │ └── index.js ├── pages │ └── index │ ├── index.js │ └── routes.js ├── stores │ └── SearchGitStore.js └── utils └── index.js
在 src 目錄下,有以下子目錄json
上面說的這些目錄已經配置在config.resolve.alias
,因此,在代碼中不須要指定相對路徑了後端
in src/modules/mobxGitSearch/index.js import {shake} from "utils"
not
in src/modules/mobxGitSearch/index.js import {shake} from "../utils"
使用 handy-cli 初始化項目後,src/pages 下只有一個 index 文件夾,也就是是個單頁應用,要想添加新的獨立的單頁面很簡單
例如,在 src/pages 下新建 doule12 文件夾
src ├── pages └── index │ ├── index.js │ └── routes.js ├── doule12 │── index.js in src/pages/doule12/index.js. ReactDOM.render( <h1>double 12</h1>, document.getElementById("root"), ); if (module.hot) { module.hot.accept(() => {}); }
重啓服務後訪問 localhost:3000/doble12 就能夠看到新加的頁面,而 localhost:3000 是默認的單頁面
若是你想修改一些 webpack 的配置,在項目根目錄,確認代碼已經 commit 後,能夠執行handy eject
來導出 webpack 的相關配置
支持 Tslint 和 Eslint
若是在建立項目時選擇了使用 Typescript,代碼校驗就只提供 Tslint,要是沒選 TypeScript,就提供 Eslint 供選擇,Eslint 相關的提供了eslint with airbnb config 和 eslint with prettier config,推薦使用 airbnb config
要想修改一些校驗規則,能夠修改項目根目錄下的.eslintrc 或者 tslint.json
能夠選擇在代碼保存或者提交代碼的時候校驗,爲了代碼更快的編譯,在提交時校驗比較好。提交代碼校驗的相關配置在 package.json 中
"husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "linters": { "*.{js,jsx}": [ "eslint --fix", "git add" ] }, "ignore": [ "**/build/**.js" ] }
可供選擇的狀態管理方式
handy-cli 提供了 ant-design 的按需使用加載,建立項目時選擇了 ant-design 後能夠零配置的直接使用
+ import { Pagination } from "antd"; + <Pagination total={100} /> <Search />
若是選擇了使用 ant-design,在項目根目錄下會有個 modifyVar.json 文件,在這裏定義的那些 less 樣式變量,均可以在 modifyVar.json 中賦予新值,保存後,不用重啓服務,自動會重啓,頁面樣式就變了
支持 less,sass,stylus and css modules
注意: 如何想使用 css modules,樣式文件要以 .module.css 、 .module.less、 .module.sass、.module.styl
做爲後綴
開發時要代理到後端服務,在 package.json 中新增 proxy 字段,以下
"proxy": "http://localhost:4000", or proxy: { '/api': { target: '<url>', pathRewrite:{ 'api':'' }, changeOrigin: true }, '/foo': { target: '<other_url>' } }
see more proxy options
歡迎試用,提 BUG