该问题 vxe-table@2.5 以下版本不受影响,由于 vxe-table@2.5+ 以上版本支持最小化打包的方式
所以依赖库 xe-utils 必须要在 vxe-table 之前引用,否则就会报以下错误
如果是 IE 浏览器可以使用 babel-polyfill 来解决兼容性问题
require: vue 2.6+
require: xe-utils 2.2+
src/plugins/utils.js
import 'xe-utils'
src/plugins/xtable.js
import Vue from 'vue'
import VXETable from 'vxe-table'
import 'vxe-table/lib/index.css'
Vue.use(VXETable)
main.js
import './plugins/utils'
import './plugins/xtable'
src/plugins/utils.js
import XEUtils from 'xe-utils/methods/xe-utils'
import dependencies from 'vxe-table/lib/utils/dependencies'
// 按需导入依赖函数库
XEUtils.mixin(dependencies)
src/plugins/xtable.js
import Vue from 'vue'
import XEUtils from 'xe-utils/methods/xe-utils'
import VXETable from 'vxe-table'
import dependencies from 'vxe-table/lib/utils/dependencies'
import 'vxe-table/lib/index.css'
Vue.use(VXETable)
main.js
import './plugins/utils'
import './plugins/xtable'
src/plugins/utils.js
import 'xe-utils'
src/plugins/xtable.js
import Vue from 'vue'
import XEUtils from 'xe-utils'
import {
VXETable,
Icon,
Header,
Body,
Column,
Table
} from 'vxe-table'
import zhCNLocat from 'vxe-table/lib/locale/lang/zh-CN'
// 导入默认的国际化(如果项目中使用多语言,则应该导入到 vue-i18n 中)
VXETable.setup({
i18n: (key, value) => XEUtils.get(zhCNLocat, key)
})
// 按需导入依赖的模块
Vue.use(Icon)
Vue.use(Header)
Vue.use(Body)
Vue.use(Column)
// 最后安装核心库
Vue.use(Table)
main.js
import './plugins/utils'
import './plugins/xtable'
安装插件,支持按需加载
npm install babel-plugin-import -D
修改 .babelrc 或 babel.config.js 配置文件
module.exports = {
// ...,
plugins: [
[
'import',
{
'libraryName': 'vxe-table',
'style': true
}
]
]
}
src/plugins/utils.js
import XEUtils from 'xe-utils/methods/xe-utils'
import dependencies from 'vxe-table/lib/utils/dependencies'
// 按需导入依赖函数库
XEUtils.mixin(dependencies)
src/plugins/xtable.js
import Vue from 'vue'
import XEUtils from 'xe-utils/methods/xe-utils'
import {
VXETable,
Icon,
Header,
Body,
Column,
Table
} from 'vxe-table'
import zhCNLocat from 'vxe-table/lib/locale/lang/zh-CN'
// 导入默认的国际化(如果项目中使用多语言,则应该导入到 vue-i18n 中)
VXETable.setup({
i18n: (key, value) => XEUtils.get(zhCNLocat, key)
})
// 按需导入依赖的模块
Vue.use(Icon)
Vue.use(Header)
Vue.use(Body)
Vue.use(Column)
// 最后安装核心库
Vue.use(Table)
main.js
import './plugins/utils'
import './plugins/xtable'
安装插件,支持按需加载
npm install babel-plugin-import -D
修改 .babelrc 或 babel.config.js 配置文件
module.exports = {
// ...,
plugins: [
[
'import',
{
'libraryName': 'vxe-table',
'style': true
}
]
]
}
在 scss 样式文件中引用
@import 'vxe-table/styles/variable.scss';
@import 'vxe-table/styles/icon.scss';
@import 'vxe-table/styles/table.scss';
@import 'vxe-table/styles/column.scss';
@import 'vxe-table/styles/header.scss';
@import 'vxe-table/styles/body.scss';
src/plugins/utils.js
import XEUtils from 'xe-utils/methods/xe-utils'
import dependencies from 'vxe-table/packages/utils/dependencies'
// 按需导入依赖函数库
XEUtils.mixin(dependencies)
src/plugins/xtable.js
import XEUtils from 'xe-utils/methods/xe-utils'
import VXETable from 'vxe-table/packages/v-x-e-table'
import Header from 'vxe-table/packages/header'
import Body from 'vxe-table/packages/body'
import Column from 'vxe-table/packages/column'
import Table from 'vxe-table/packages/table'
import zhCNLocat from 'vxe-table/packages/locale/lang/zh-CN'
// 导入默认的国际化(如果项目中使用多语言,则应该导入到 vue-i18n 中)
VXETable.setup({
i18n: (key, value) => XEUtils.get(zhCNLocat, key)
})
// 按需导入依赖的模块
Vue.use(Column)
Vue.use(Header)
Vue.use(Body)
// 最后安装核心库
Vue.use(Table)
main.js
import './plugins/utils'
import './plugins/xtable'