l-hammer/YDTemplate

View on GitHub
README.md

Summary

Maintainability
Test Coverage
<p align="center">
    <img src="./static/logo.png" width="329">
    <p align="center">
        <a href="https://travis-ci.org/l-hammer/YDTemplate" target="_blank"><img src="https://travis-ci.org/l-hammer/YDTemplate.svg?branch=dev"></a>
        <a href="https://github.com/l-hammer/YDTemplate/issues"><img src="https://img.shields.io/github/issues/l-hammer/YDTemplate.svg"></a>
        <img src="https://img.shields.io/badge/devDependencies-up%20to%20date-blue.svg">
        <a href="https://github.com/l-hammer/YDTemplate/blob/master/LICENSE"><img src="https://img.shields.io/github/license/l-hammer/YDTemplate.svg"></a>
        <a href="https://codeclimate.com/github/l-hammer/YDTemplate/maintainability"><img src="https://api.codeclimate.com/v1/badges/d4de5b2b2b842401df28/maintainability" /></a>
    </p>
    <p align="center">
        Yindou Web and App special development template~
        <br>
    </p>
</p>

## Usage

This is a project template for [ydt-cli](https://github.com/l-hammer/YDT-cli). 

```bash
$ npm install -g ydt-cli
$ ydt-cli init YDTemplate my-project
```

## Quick start

Several quick start options are available:

<!-- - Initialize template run: `. init.sh` -->
<!-- - Clone the repo: `https://github.com/l-hammer/YDTemplate.git` -->
- Install dependencies with [npm](https://www.npmjs.com/): `npm install`
- App development run `npm run start`
- App development use mock data run `npm run dev`
- Web development run `npm run start:web`
- Web development use mock data run `npm run dev:web`
- Open web example run `npm run dev:webeg`
- Open app example run `npm run dev:appeg`
- Build run `bash build.sh @param1 @param2` (@param1:`web`,`app`,`webeg`,`appeg`; @param2:`--no-minify`)
- Move useless codes run `python bin/mvuseless.py @param` (@param:`web`,`app`,`examples`)
- Open `http://localhost:1234` in your browser.

## What's included

```
YDTemplate/
├── bin/    // python脚本
│   ├── autocopy.py    // 🚚自动拷贝上线代码
│   └── mvuseless.py    // 🔥删除开发非相关代码for强迫症用户
├── configs/
│   ├── meta.js    // 🛠模板配置文件for ydt-cli
│   └── init.ini    // 🎉build配置文件
├── mock/
│   ├── index.js    // 🗳mock server
│   ├── data.json    // 🗄mock data
│   └── util.js    // 🤡mock API
├── server/
│   └── index.js    // 💡node proxy
├── src/
│   ├── api/
│   │   ├── config.js    // 🛠axios配置
│   │   └── index.js    // 🎲业务API
│   ├── assets/
│   │   ├── normalize/
│   │   │   └── index.scss    // 🤖统一浏览器默认样式
│   │   ├── basics/
│   │   │   └── index.scss    // 🙌base.scss
│   │   ├── iconfonts/
│   │   │   └── index.scss    // 🔄内联字体&&字体图标
│   │   ├── animation/
│   │   │   └── index.scss    // 🚥常用css动画
│   │   ├── mixins/
│   │   │   └── index.scss    // 📚可重用的代码块@mixin
│   │   ├── customs/
│   │   │   └── app.scss    // 💋自定义SCSS变量
│   │   └── components/
│   │       └── index.scss    // 🎈常用组件样式@dialog @progress @records page @onepx-border
│   │   ├── app.scss    // app开发样式入口
│   │   └── web.scss    // web开发样式入口
│   ├── examples/
│   │   ├── web/    // web examples
│   │   └── app/    // app examples
│   ├── components/    // 💄常用UI组件(App)
│   │   ├── icon/    // 图标
│   │   ├── loading-bar/    // 进度条
│   │   └── dialog/    // 对话框
│   ├── app/    // SPA
│   │   ├── template/
│   │   │   └── index.tpl    // build中间模板
│   │   ├── mixins/    // 混入
│   │   │   └── index.js    // 功能复用模块
│   │   ├── views/    // page
│   │   │   ├── index.vue    // 首页
│   │   │   └── xxx.vue    // 其它页
│   │   ├── App.vue    // 根组件
│   │   ├── index.html    // app 根页面
│   │   ├── bus.js    // 事件总线,非父子间通信
│   │   ├── main.js    // 入口文件
│   │   ├── router.js    // 配置路由
│   │   └── template.tpl    // 上线模板
│   │── web/
│   │   ├── index.html    // web开发页
│   │   ├── index.js    // web开发脚本
│   │   └── template.tpl    // web上线模板
│   │── vetar/    // 🤞极简版MVVM
│   │   ├── dep.js    // 观察指挥中心
│   │   ├── index.js    // MVVM:Vetar
│   │   └── watcher.js    // 订阅者
│   └── utils/    // 🗃常用工具函数
│       ├── arrayPull.js    // 删除数组指定值
│       ├── cookie.js    // cookie
│       ├── clone.js    // 拷贝(Object, Array or Primitive)
│       ├── date.js    // 解析日期、日期格式化
│       ├── deepClone.js    // 深拷贝 (Object, Array, RegExp, Date or Primitives)
│       ├── distinctValuesOfArray.js    // 数组去重
│       ├── fetch.js    // ajax
│       ├── initArrayWithRange.js    // 初始化指定范围内的数组
│       ├── preloadimages.js    // 图片预加载
│       ├── scrollToTop.js    // 返回顶部
│       ├── shuffleArray.js    // 随机排列数组
│       ├── store.js    // localStorage
│       ├── viewType.js    // 判断数据类型
│       └── wxShare.tpl    // 微信分享
├── clearcache.sh    // ♻️清除缓冲
├── build.sh    // 📦打包
├── init.sh    // 🎉初始化项目
└── push.sh    // 🔥强烈建议使用此脚本替换git push
```
## Technology

- App `Vue 2.x` + `Axios`
- Web `jQuery` + `Handlebars`

## Browser Support

```
last 10 versions
IE 8
iOS 7
```

## Contributing ![PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?longCache=true&style=flat-square)

- :fork_and_knife:Fork it!
- :twisted_rightwards_arrows:Create your branch: `git checkout -b new-branch`
- :wrench:Make your changes
- :memo:Commit your changes: `git commit -am 'Add some feature'`
- :rocket:Push to the branch: `git push origin new-branch`
- :tada:Submit a pull request

## License

[MIT](https://github.com/l-hammer/YDTemplate/blob/master/LICENSE) © 2018 LHammer

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fl-hammer%2FYDTemplate.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fl-hammer%2FYDTemplate?ref=badge_large)