# panzilongtest

> JD Intelligent City business component

Latest version **0.0.29** (published 2019-06-12) · ISC license · 0 weekly downloads

## Install

```sh
npm install panzilongtest
pnpm add panzilongtest
yarn add panzilongtest
bun add panzilongtest
```

## Health

**Score 5/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: insecure dependencies; abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.29 |
| Published | 2019-06-12 |
| First published | 2019-04-03 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 58 |
| Unpacked size | 2.6 MB |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| Author | panzilong |
| Maintainers | panzilong |
| Keywords | business, component |

## Links

- npm: https://www.npmjs.com/package/panzilongtest
- npm.io page: https://npm.io/package/panzilongtest

## Dependencies (58)

- [d3](https://npm.io/package/d3.md) ^5.9.2
- [ejs](https://npm.io/package/ejs.md) ^2.6.1
- [antd](https://npm.io/package/antd.md) ^3.12.4
- [react](https://npm.io/package/react.md) ^16.2.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.5
- [moment](https://npm.io/package/moment.md) ^2.22.0
- [uc-fun](https://npm.io/package/uc-fun.md) http://storage.urban-computing.cn/npmjs/uc-fun/0.1.0.tar.gz
- [d3-path](https://npm.io/package/d3-path.md) ^1.0.7
- [omit.js](https://npm.io/package/omit.js.md) ^1.0.0
- [rc-form](https://npm.io/package/rc-form.md) ^2.1.0
- [rc-menu](https://npm.io/package/rc-menu.md) ~6.2.0
- [rc-rate](https://npm.io/package/rc-rate.md) ~2.4.0
- [rc-tabs](https://npm.io/package/rc-tabs.md) ~9.2.0
- [rc-tree](https://npm.io/package/rc-tree.md) ~1.8.0
- [rc-util](https://npm.io/package/rc-util.md) ^4.0.4
- [reqwest](https://npm.io/package/reqwest.md) ^2.0.5
- [warning](https://npm.io/package/warning.md) ^3.0.0
- [rc-steps](https://npm.io/package/rc-steps.md) ~3.1.0
- [rc-table](https://npm.io/package/rc-table.md) ~6.1.0
- [rc-dialog](https://npm.io/package/rc-dialog.md) ~7.1.0
- [rc-select](https://npm.io/package/rc-select.md) ~7.7.0
- [rc-slider](https://npm.io/package/rc-slider.md) ~8.6.0
- [rc-switch](https://npm.io/package/rc-switch.md) ~1.6.0
- [rc-upload](https://npm.io/package/rc-upload.md) ~2.4.0
- [react-dnd](https://npm.io/package/react-dnd.md) ^2.6.0
- [react-dom](https://npm.io/package/react-dom.md) ^16.2.0
- [classnames](https://npm.io/package/classnames.md) ~2.2.0
- [codemirror](https://npm.io/package/codemirror.md) ^5.47.0
- [enquire.js](https://npm.io/package/enquire.js.md) ^2.1.6
- [prop-types](https://npm.io/package/prop-types.md) ^15.6.1
- [rc-animate](https://npm.io/package/rc-animate.md) ^2.4.1
- [rc-tooltip](https://npm.io/package/rc-tooltip.md) ~3.7.0
- [dom-closest](https://npm.io/package/dom-closest.md) ^0.2.0
- [fetch-jsonp](https://npm.io/package/fetch-jsonp.md) ^1.1.3
- [rc-calendar](https://npm.io/package/rc-calendar.md) ~9.6.0
- [rc-cascader](https://npm.io/package/rc-cascader.md) ~0.12.0
- [rc-checkbox](https://npm.io/package/rc-checkbox.md) ~2.1.5
- [rc-collapse](https://npm.io/package/rc-collapse.md) ~1.9.0
- [rc-dropdown](https://npm.io/package/rc-dropdown.md) ~2.1.0
- [rc-progress](https://npm.io/package/rc-progress.md) ~2.2.2
- [react-slick](https://npm.io/package/react-slick.md) ^0.23.1
- [react-router](https://npm.io/package/react-router.md) ^4.2.0
- [shallowequal](https://npm.io/package/shallowequal.md) ^1.0.2
- [css-animation](https://npm.io/package/css-animation.md) ^1.4.1
- [rc-pagination](https://npm.io/package/rc-pagination.md) ~1.16.1
- [rc-time-picker](https://npm.io/package/rc-time-picker.md) ~3.3.0
- [rc-tree-select](https://npm.io/package/rc-tree-select.md) ~1.12.0
- [rc-input-number](https://npm.io/package/rc-input-number.md) ~4.0.0
- [rc-notification](https://npm.io/package/rc-notification.md) ~3.0.0
- [react-lazy-load](https://npm.io/package/react-lazy-load.md) ^3.0.13
- [react-router-dom](https://npm.io/package/react-router-dom.md) ^4.2.2
- [array-tree-filter](https://npm.io/package/array-tree-filter.md) ^2.1.0
- [rc-editor-mention](https://npm.io/package/rc-editor-mention.md) ^1.0.2
- [react-virtualized](https://npm.io/package/react-virtualized.md) ^9.18.5
- [immutability-helper](https://npm.io/package/immutability-helper.md) ^2.7.0
- [react-dnd-html5-backend](https://npm.io/package/react-dnd-html5-backend.md) ^2.6.0
- [react-infinite-scroller](https://npm.io/package/react-infinite-scroller.md) ^1.1.4
- [babel-plugin-transform-decorators-legacy](https://npm.io/package/babel-plugin-transform-decorators-legacy.md) ^1.3.4

## Recent versions

- 0.0.29 (latest) — 2019-06-12
- 0.0.28 — 2019-06-12
- 0.0.27 — 2019-06-12
- 0.0.26 — 2019-06-12
- 0.0.25 — 2019-06-11
- 0.0.24 — 2019-06-11
- 0.0.23 — 2019-06-10
- 0.0.22 — 2019-06-10
- 0.0.21 — 2019-06-10
- 0.0.20 — 2019-06-10
- 0.0.19 — 2019-06-10
- 0.0.18 — 2019-06-10
- 0.0.17 — 2019-06-06
- 0.0.16 — 2019-06-06
- 0.0.15 — 2019-06-06
- … 14 more at https://npm.io/package/panzilongtest/versions

## README

# jdicitybc

1 创建项目脚手架
1.1 优化开发、编译和发布速度

1.2 引入eslint代码校验
1) 引入eslint文件夹 - src & components
2) 引入城市计算平台的校验规则
3) 校验规则在没有改动的时候报错
比如uc-fun的引入,原因是eslint库版本不一致问题，解决方案是使版本一致

1.3 babelrc配置antd组件库

2 项目文件组织结构（文件结构及要求如下，以一个简单的组件 - Tab目录结构为例）
2.1 components - 所有组件对应的源代码均放在该文件夹下

2.2 components/index.js ： 所有组件出口文件
export { default as Tab } from './Tab';

2.3 components/组件文件夹：一个组件对应一个文件夹
要求：组件所有内容必须包含在该文件夹，不允许放在其他文件夹下。
公共主题theme和公共util除外, 并且保持与平台项目同步
e.g. components/Tab
要求：组件名称命名规范(文件夹名称)：大驼峰法。e.g. CodeMirror
Tab/index.js ：必须有该文件，将最终完成或合成的组件导出。组件实现也可在该组件内。
export default Tab;
Tab/other.js  ： 尽量和index.js同级，除非需要其他资源文件支持才可创建新的文件夹
Tab/style/index.less ：一般用于存放该组件的样式。
Tab/style/other.less ：和index.less同级的其他自定义样式。
注：1.若b.less引用了a.less定义的变量，需在b.less中引入a.less

2.4 组件demo - todo
components/Tab/demo: 组件的各种demo，一般可以在src/index.js直接运行

2.5 lib - 编译后的文件目录

2.6 src/index.js - 做组件的开发和调试使用

3 创建组件
3.1 步骤
1）已有项目中沉淀的组件
2）由于组件共性，逐步沉淀到公共组件文件夹中：src/components/common
3）经历实际项目验证后，可以抽取到react公共组件库中
4）组件命名规则：大驼峰法

3.2 组件样板参考
1）简单组件 - Tab
2）复杂组件 - Flow

3.3 复杂组件引入文件的组织结构 - 保持组件的独立性，逐步梳理出组件的公共依赖.
1) uc-fun的加入
2) 公共库的提取components/util

3.4 样式定义
1）样式不支持css module的写法
2）要求class命名： 小写，以中划线“-”分割，class以 jdic-** 开头。e.g. Tab组件以 jdic-tab 开头
3）需要在组件文件*.js中单独引入样式， import './style/index.less';
3）引入prefixCls

4 组件开发&项目自测
4.1 运行：npm run dev, 浏览器输入http://localhost:8080
4.2 编译 : npm run compile
4.3 项目自测， 编译后的目录lib -> 替换UrbanComputingPlatform/node_modules/jdicitybc/lib
4.4 todo: 配置npm link

5.创建测试项目(jest)，并通过Jest测试 (todo)
jest单元测试:分为两种，dom测试和断言测试
5.1dom测试
说明：会根据测试用例的场景，生成组件最终生成的真实dom结构。如果修改组件后，执行dom测试，会提示dom结构发生改变，方便我们校验。
使用：
在组件目录下，新建__test__文件夹，用于存放测试用例以及测试结果。
测试用例的文件要以XXX.test.js命名
dom测试的结果会在_snapshots_文件夹下生成
具体的jest的语法可以在网上搜索下相关资料，并参考ant的测试用例使用

5.2断言测试
说明：会根据自定义的断言进行测试，有任意一个断言失败则不通过，并在控制台提示错误
其他说明同上

5.3具体操作
控制台执行： npm test --rootDir /components/alert
其中/components/alert为需要执行测试组件的目录

6.撰写readme文档 (todo)
todo文档生成器

7.组件发布到npm官网或私服 -  http://cf-b2b.jdcloud.com/pages/viewpage.action?pageId=493254
7.1 todo： 创建npm账号
7.2 todo： 包取名 -  jdicitycc
7.3 在已有的版本上修改版本号
7.4 npm login 后输入username, password, email
7.5 npm publish

8.安装
```bash
npm install jdicitycc --save
```

9.组件替换示例
import Tab from 'src/components/common/tab'; ->
import { Tab } from 'jdicitycc';

---
_Source: https://npm.io/package/panzilongtest · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
