diff --git a/build/bin/build-entry.js b/build/bin/build-entry.js index 62da2c810..ec310c5d9 100644 --- a/build/bin/build-entry.js +++ b/build/bin/build-entry.js @@ -6,19 +6,25 @@ var path = require('path'); var OUTPUT_PATH = path.join(__dirname, '../../src/index.js'); var IMPORT_TEMPLATE = 'import {{name}} from \'../packages/{{package}}\';'; -var INSTALL_COMPONENT_TEMPLATE = ' Vue.component({{name}}.name, {{name}});'; +var INSTALL_COMPONENT_TEMPLATE = ' {{name}}'; var MAIN_TEMPLATE = `/* Automatic generated by './build/bin/build-entry.js' */ {{include}} import locale from 'element-ui/src/locale'; +const components = [ +{{install}} +]; + const install = function(Vue, opts = {}) { /* istanbul ignore if */ if (install.installed) return; locale.use(opts.locale); locale.i18n(opts.i18n); -{{install}} + components.map(component => { + Vue.component(component.name, component); + }); Vue.use(Loading.directive); @@ -74,7 +80,7 @@ ComponentNames.forEach(name => { var template = render(MAIN_TEMPLATE, { include: includeComponentTemplate.join('\n'), - install: installTemplate.join('\n'), + install: installTemplate.join(',\n'), version: process.env.VERSION || require('../../package.json').version, list: listTemplate.join(',\n') }); diff --git a/src/index.js b/src/index.js index 502cb2a76..674f8fe3e 100644 --- a/src/index.js +++ b/src/index.js @@ -62,68 +62,74 @@ import Collapse from '../packages/collapse'; import CollapseItem from '../packages/collapse-item'; import locale from 'element-ui/src/locale'; +const components = [ + Pagination, + Dialog, + Autocomplete, + Dropdown, + DropdownMenu, + DropdownItem, + Menu, + Submenu, + MenuItem, + MenuItemGroup, + Input, + InputNumber, + Radio, + RadioGroup, + RadioButton, + Checkbox, + CheckboxGroup, + Switch, + Select, + Option, + OptionGroup, + Button, + ButtonGroup, + Table, + TableColumn, + DatePicker, + TimeSelect, + TimePicker, + Popover, + Tooltip, + Breadcrumb, + BreadcrumbItem, + Form, + FormItem, + Tabs, + TabPane, + Tag, + Tree, + Alert, + Slider, + Icon, + Row, + Col, + Upload, + Progress, + Spinner, + Badge, + Card, + Rate, + Steps, + Step, + Carousel, + Scrollbar, + CarouselItem, + Collapse, + CollapseItem +]; + const install = function(Vue, opts = {}) { /* istanbul ignore if */ if (install.installed) return; locale.use(opts.locale); locale.i18n(opts.i18n); - Vue.component(Pagination.name, Pagination); - Vue.component(Dialog.name, Dialog); - Vue.component(Autocomplete.name, Autocomplete); - Vue.component(Dropdown.name, Dropdown); - Vue.component(DropdownMenu.name, DropdownMenu); - Vue.component(DropdownItem.name, DropdownItem); - Vue.component(Menu.name, Menu); - Vue.component(Submenu.name, Submenu); - Vue.component(MenuItem.name, MenuItem); - Vue.component(MenuItemGroup.name, MenuItemGroup); - Vue.component(Input.name, Input); - Vue.component(InputNumber.name, InputNumber); - Vue.component(Radio.name, Radio); - Vue.component(RadioGroup.name, RadioGroup); - Vue.component(RadioButton.name, RadioButton); - Vue.component(Checkbox.name, Checkbox); - Vue.component(CheckboxGroup.name, CheckboxGroup); - Vue.component(Switch.name, Switch); - Vue.component(Select.name, Select); - Vue.component(Option.name, Option); - Vue.component(OptionGroup.name, OptionGroup); - Vue.component(Button.name, Button); - Vue.component(ButtonGroup.name, ButtonGroup); - Vue.component(Table.name, Table); - Vue.component(TableColumn.name, TableColumn); - Vue.component(DatePicker.name, DatePicker); - Vue.component(TimeSelect.name, TimeSelect); - Vue.component(TimePicker.name, TimePicker); - Vue.component(Popover.name, Popover); - Vue.component(Tooltip.name, Tooltip); - Vue.component(Breadcrumb.name, Breadcrumb); - Vue.component(BreadcrumbItem.name, BreadcrumbItem); - Vue.component(Form.name, Form); - Vue.component(FormItem.name, FormItem); - Vue.component(Tabs.name, Tabs); - Vue.component(TabPane.name, TabPane); - Vue.component(Tag.name, Tag); - Vue.component(Tree.name, Tree); - Vue.component(Alert.name, Alert); - Vue.component(Slider.name, Slider); - Vue.component(Icon.name, Icon); - Vue.component(Row.name, Row); - Vue.component(Col.name, Col); - Vue.component(Upload.name, Upload); - Vue.component(Progress.name, Progress); - Vue.component(Spinner.name, Spinner); - Vue.component(Badge.name, Badge); - Vue.component(Card.name, Card); - Vue.component(Rate.name, Rate); - Vue.component(Steps.name, Steps); - Vue.component(Step.name, Step); - Vue.component(Carousel.name, Carousel); - Vue.component(Scrollbar.name, Scrollbar); - Vue.component(CarouselItem.name, CarouselItem); - Vue.component(Collapse.name, Collapse); - Vue.component(CollapseItem.name, CollapseItem); + components.map(component => { + Vue.component(component.name, component); + }); Vue.use(Loading.directive);