
# Dt Design

一套政务级的 UI 设计语言和 React 实现。

## 特性

- 提炼自政务级中后台产品的交互语言和视觉风格。
- 开箱即用的高质量 React 组件。
- 使用 TypeScript 构建，提供完整的类型定义文件。

## 支持环境

* 现代浏览器和 IE9 及以上。
* 支持服务端渲染。
* [Electron](http://electron.atom.io/)


## 安装

```bash
npm install dtd --save
```

## 示例

```jsx
import { DatePicker } from 'dtd';
ReactDOM.render(<DatePicker />, mountNode);
```

你也可以[按需加载组件](https://github.com/ant-design/babel-plugin-import)。

## 国际化

参考 [国际化文档](docs/react/i18n.zh-CN.md)。

## 链接

- [首页](docs/react/introduce-cn)
- [组件库](docs/react/introduce)
- [React 底层基础组件](http://react-component.github.io/)
- [基础组件](http://demo.dt-reta.tech/docs/react/introduce-cn)
- [定制主题](docs/react/customize-theme-cn)

## 本地开发

```bash
$ git clone git@gitlab05.dtdream.com:DT-FED/dtd.git
$ npm install
$ npm start
```

打开浏览器访问 http://127.0.0.1:8001。

## 发布

**注意：**

- 使用`npm`命令而不是其他命令
- 已经完成第一步直接跳到第二步
- 建议使用`nrm`做源管理

### 1. 切换npm源

> 如果没切换源私有源是不会发布成功的

```bash
$ npm set registry http://registry.reta-develop.dophz.dtdream.com
```

如果没注册过那就执行下面这行：

```bash
$ npm adduser --registry http://registry.reta-develop.dophz.dtdream.com
```

### 2. 手动叠加package.js中的version

`dtd` 严格遵循 [Semantic Versioning 2.0.0](https://semver.org/lang/zh-CN/) 语义化版本规范。

### 3. 发布

```bash
$ npm run pub
```

> ⚠️警告⚠️：不要使用`npm publish --force`发布, 如果要发布到外网请提前进行`compile `和`dist`编译。

### 其他

#### 1. lib和es编译：`npm run compile`

执行下面的命令，将会把`/components`中的组件打包到`/lib`和`/es`中，一个ES5语法，一个是ES6语法，如果使用webpack的话会自动引入`/es`中的组件。

```bash
$ npm run compile
```

#### 2. dist编译：`npm run dist`

执行下面的命令，将会把`/components`中的组件打包到`/dist`中.

```bash
$ npm run dist
```

#### 3. 使用`npm run pub` 发布如果没切换到到私网会警告退出！

#### 4. 使用`npm run pub:outer`发布会发布到外网，发布前检查源

#### 5. 使用`npm run pub:loose` 发布dtd-loose版本（dtd的ie9兼容版本,发布前务必手动修改包名为dtd-loose），发布如果没切换到到私网会警告退出！

#### 6. 使用`npm run pub:outer-loose`发布dtd-loose版本（dtd的ie9兼容版本，发布前务必手动修改包名为dtd-loose），发布会发布到外网，发布前检查源

#### 7. 使用`npm run pub:name`支持发布时包名的选择及自定义和发布地址的选择和自定义
> 发布前确保外网的源为: https://registry.npmjs.org/

#### 8. 如果使用 `npm publish` 发布会警告退出！


## 如何贡献

> https://gitlab04.dtdream.com/DT-FED/reta-start-kit 提issues，issue中请包括 “使用场景，使用版本，问题描述，复现代码片段和复现步骤”

