使用 Vue CLI 2.x 初始化项目
首先,使用 vue-cli 选择创建 webpack
模板的项目。然后在项目根目录下运行:
$ npm i --save veui veui-theme-one
$ npm i --save-dev veui-loader babel-preset-veui
配置
Babel 插件
VEUI 目前在 npm 上直接以源码方式进行发布,在使用时必须提前转译。VEUI 的源代码依赖 Lodash 和 Vue JSX 相关的 Babel 插件才能正确转译。此外,VEUI 还提供了自己的 Babel 插件,以帮助应用书写更简单的 import
语句的同时最小化代码的体积。
我们提供了 babel-preset-veui 来方便在使用时快速添加转译配置,只需要在项目的 .babelrc
文件中添加如下配置即可:
{
"presets": [
"veui"
]
}
babel-preset-veui 包含了以下包提供的功能:
其中关于 babel-plugin-veui 的更详细信息请移步这里。
webpack Loader
VEUI Loader
VEUI 采取了样式主题与组件代码分离的开发、发布方式。组件代码对样式代码没有显式的依赖,故以源码方式引入时,需要使用 veui-loader 配置关联的主题包。
如需使用默认的样式包 veui-theme-one,我们还需要确保在 webpack 配置中引入 veui-loader
。
在 Vue webpack
模板生成的 build/webpack.base.conf.js
中的 module.rules
最前方插入如下配置:
{
test: /\.vue$/,
loader: 'veui-loader',
enforce: 'pre',
options: {
modules: [
{
package: 'veui-theme-one',
fileName: '${module}.less'
},
{
package: 'veui-theme-one',
fileName: '${module}.js',
transform: false
}
]
},
include: [resolve('node_modules/veui')]
}
另外,请记得在 babel-loader 的 include
配置中加入 veui、vue-awesome 和 resize-detector 包:
{
test: /\.js$/,
loader: 'babel-loader',
include: [
resolve('node_modules/veui'),
resolve('node_modules/vue-awesome'),
resolve('node_modules/resize-detector')
]
}
选项的详细配置请参考 veui-loader 文档。
Less Loader
由于 Less 3+ 不再默认开启内联 JavaScript 解析,而 veui-theme-one 依赖了这一功能,所以我们需要手动开启配置项。
使用 Vue CLI 2.x + webpack
模板初始化的项目,请在项目的 build/utils.js
文件中进行如下修改即可:
- less: generateLoaders('less'),
+ less: generateLoaders('less', { javascriptEnabled: true }),