From ffd72e5442c8bb8680cabac412a3dc5e6971c453 Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 16 Mar 2018 17:10:46 +0800 Subject: [PATCH] [Improvement] extract component common part (#703) --- build/bin/build-style-entry.js | 9 ++-- packages/actionsheet/index.vue | 2 +- packages/address-edit/Detail.vue | 8 +--- packages/address-edit/index.vue | 50 +++++++++----------- packages/address-list/index.vue | 6 +-- packages/area/index.vue | 2 +- packages/badge-group/index.vue | 2 +- packages/badge/index.vue | 2 +- packages/button/index.vue | 2 +- packages/card/index.vue | 2 +- packages/cell-group/index.vue | 10 ++-- packages/cell-swipe/index.vue | 2 +- packages/cell/index.vue | 15 ++++-- packages/checkbox-group/index.vue | 2 +- packages/checkbox/index.vue | 2 +- packages/circle/index.vue | 2 +- packages/col/index.vue | 2 +- packages/collapse-item/index.vue | 7 +-- packages/collapse/index.vue | 2 +- packages/contact-card/index.vue | 2 +- packages/contact-edit/index.vue | 20 ++++---- packages/contact-list/index.vue | 6 +-- packages/coupon-cell/index.vue | 9 +--- packages/coupon-list/Item.vue | 2 +- packages/coupon-list/index.vue | 6 +-- packages/datetime-picker/index.vue | 2 +- packages/dialog/dialog.vue | 2 +- packages/field/index.vue | 7 +-- packages/goods-action-big-btn/index.vue | 2 +- packages/goods-action-mini-btn/index.vue | 2 +- packages/goods-action/index.vue | 2 +- packages/icon/index.vue | 2 +- packages/image-preview/image-preview.vue | 2 +- packages/list/index.vue | 2 +- packages/loading/index.vue | 2 +- packages/mixins/popup/Modal.vue | 2 +- packages/nav-bar/index.vue | 2 +- packages/notice-bar/index.vue | 2 +- packages/number-keyboard/index.vue | 2 +- packages/pagination/index.vue | 2 +- packages/panel/index.vue | 2 +- packages/password-input/index.vue | 2 +- packages/picker/PickerColumn.vue | 2 +- packages/picker/index.vue | 2 +- packages/popup/index.vue | 2 +- packages/progress/index.vue | 2 +- packages/pull-refresh/index.vue | 2 +- packages/radio-group/index.vue | 2 +- packages/radio/index.vue | 2 +- packages/row/index.vue | 2 +- packages/search/index.vue | 2 +- packages/sku/Sku.vue | 2 +- packages/sku/components/SkuActions.vue | 2 +- packages/sku/components/SkuHeader.vue | 2 +- packages/sku/components/SkuImgUploader.vue | 2 +- packages/sku/components/SkuMessages.vue | 8 +--- packages/sku/components/SkuRow.vue | 2 +- packages/sku/components/SkuRowItem.vue | 2 +- packages/sku/components/SkuStepper.vue | 2 +- packages/step/index.vue | 2 +- packages/stepper/index.vue | 2 +- packages/steps/index.vue | 2 +- packages/submit-bar/index.vue | 2 +- packages/swipe-item/index.vue | 2 +- packages/swipe/index.vue | 2 +- packages/switch-cell/index.vue | 4 +- packages/switch/index.vue | 2 +- packages/tab/index.vue | 2 +- packages/tabbar-item/index.vue | 2 +- packages/tabbar/index.vue | 2 +- packages/tabs/index.vue | 2 +- packages/tag/index.vue | 2 +- packages/toast/toast.vue | 2 +- packages/tree-select/index.vue | 2 +- packages/uploader/index.vue | 2 +- packages/utils/create.js | 14 ++++-- packages/utils/validate/mobile.js | 4 +- packages/vant-css/src/base.css | 4 ++ packages/vant-css/src/index.css | 4 -- test/specs/address-edit.spec.js | 54 +++++++++++----------- test/specs/contact.spec.js | 14 +++--- 81 files changed, 174 insertions(+), 207 deletions(-) diff --git a/build/bin/build-style-entry.js b/build/bin/build-style-entry.js index 6d7779a2a..cc8c72c18 100644 --- a/build/bin/build-style-entry.js +++ b/build/bin/build-style-entry.js @@ -17,19 +17,20 @@ components.forEach(componentName => { // Analyze component dependencies function analyzeDependencies(componentName, libDir) { const checkList = ['base']; + const whiteList = ['icon', 'loading', 'cell', 'button']; search(dependencyTree({ directory: libDir, filename: path.resolve(libDir, componentName, 'index.js'), filter: path => path.indexOf(`vant${SEP}lib${SEP}`) !== -1 - }), checkList); + }), checkList, whiteList); return checkList.filter(component => checkComponentHasStyle(component)); } -function search(tree, checkList) { +function search(tree, checkList, whiteList) { tree && Object.keys(tree).forEach(key => { - search(tree[key], checkList); + search(tree[key], checkList, whiteList); const component = key.split(`${SEP}vant${SEP}lib${SEP}`)[1].replace(`${SEP}index.js`, '').replace(`mixins${SEP}`, ''); - if (checkList.indexOf(component) === -1) { + if (checkList.indexOf(component) === -1 && whiteList.indexOf(component) === -1) { checkList.push(component); } }); diff --git a/packages/actionsheet/index.vue b/packages/actionsheet/index.vue index 4c2b3ca8a..9b3e6dc38 100644 --- a/packages/actionsheet/index.vue +++ b/packages/actionsheet/index.vue @@ -38,7 +38,7 @@ import { create } from '../utils'; import Popup from '../mixins/popup'; export default create({ - name: 'van-actionsheet', + name: 'actionsheet', mixins: [Popup], diff --git a/packages/address-edit/Detail.vue b/packages/address-edit/Detail.vue index 30cd52609..7d6b73e17 100644 --- a/packages/address-edit/Detail.vue +++ b/packages/address-edit/Detail.vue @@ -41,17 +41,13 @@ diff --git a/packages/cell-swipe/index.vue b/packages/cell-swipe/index.vue index bb9b23e8f..144f38eb7 100644 --- a/packages/cell-swipe/index.vue +++ b/packages/cell-swipe/index.vue @@ -27,7 +27,7 @@ import Clickoutside from '../utils/clickoutside'; const THRESHOLD = 0.15; export default create({ - name: 'van-cell-swipe', + name: 'cell-swipe', props: { onClose: Function, diff --git a/packages/cell/index.vue b/packages/cell/index.vue index 592fa9490..7fe972fc1 100644 --- a/packages/cell/index.vue +++ b/packages/cell/index.vue @@ -37,11 +37,18 @@ diff --git a/packages/checkbox-group/index.vue b/packages/checkbox-group/index.vue index 9c00e3d78..576b25254 100644 --- a/packages/checkbox-group/index.vue +++ b/packages/checkbox-group/index.vue @@ -8,7 +8,7 @@ import { create } from '../utils'; export default create({ - name: 'van-checkbox-group', + name: 'checkbox-group', props: { value: {}, diff --git a/packages/checkbox/index.vue b/packages/checkbox/index.vue index 08154cd18..712f3d63b 100644 --- a/packages/checkbox/index.vue +++ b/packages/checkbox/index.vue @@ -21,7 +21,7 @@ import { create, isDef } from '../utils'; import findParent from '../mixins/find-parent'; export default create({ - name: 'van-checkbox', + name: 'checkbox', mixins: [findParent], diff --git a/packages/circle/index.vue b/packages/circle/index.vue index 6bd78cc92..4939fddef 100644 --- a/packages/circle/index.vue +++ b/packages/circle/index.vue @@ -15,7 +15,7 @@ import { create } from '../utils'; import { raf, cancel } from '../utils/raf'; export default create({ - name: 'van-circle', + name: 'circle', props: { text: String, diff --git a/packages/col/index.vue b/packages/col/index.vue index 8b8db3f16..c33fe1ee0 100644 --- a/packages/col/index.vue +++ b/packages/col/index.vue @@ -12,7 +12,7 @@ import { create } from '../utils'; export default create({ - name: 'van-col', + name: 'col', props: { span: [Number, String], diff --git a/packages/collapse-item/index.vue b/packages/collapse-item/index.vue index 50cc6cf61..af3abf161 100644 --- a/packages/collapse-item/index.vue +++ b/packages/collapse-item/index.vue @@ -16,19 +16,14 @@ diff --git a/packages/icon/index.vue b/packages/icon/index.vue index 36d4d9589..62c122341 100644 --- a/packages/icon/index.vue +++ b/packages/icon/index.vue @@ -11,7 +11,7 @@ import install from '../utils/install'; export default { install, - name: 'van-icon', + name: 'icon', props: { name: String, diff --git a/packages/image-preview/image-preview.vue b/packages/image-preview/image-preview.vue index a98259508..4defc2dc8 100644 --- a/packages/image-preview/image-preview.vue +++ b/packages/image-preview/image-preview.vue @@ -22,7 +22,7 @@ import Swipe from '../swipe'; import SwipeItem from '../swipe-item'; export default create({ - name: 'van-image-preview', + name: 'image-preview', mixins: [Popup], diff --git a/packages/list/index.vue b/packages/list/index.vue index 8b3d085b1..223ea2e46 100644 --- a/packages/list/index.vue +++ b/packages/list/index.vue @@ -16,7 +16,7 @@ import utils from '../utils/scroll'; import { on, off } from '../utils/event'; export default create({ - name: 'van-list', + name: 'list', model: { prop: 'loading' diff --git a/packages/loading/index.vue b/packages/loading/index.vue index 897ac305e..931799100 100644 --- a/packages/loading/index.vue +++ b/packages/loading/index.vue @@ -15,7 +15,7 @@ import install from '../utils/install'; export default { install, - name: 'van-loading', + name: 'loading', props: { size: String, diff --git a/packages/mixins/popup/Modal.vue b/packages/mixins/popup/Modal.vue index e76440d8f..654a1193e 100644 --- a/packages/mixins/popup/Modal.vue +++ b/packages/mixins/popup/Modal.vue @@ -13,7 +13,7 @@