vue-cli 3.0脚手架与vux的配合使用

  在最近的项目中,引用了vux,在可拓展性以及复用性,都算是比较优秀的框架了。但是美中不足的是对于vux在对于vue-cli3.0的跟进还没有同步 需要自己做下修改,同比 有赞的vant 以及 iview 都有了对于vue-cli3.0的兼容了

  现记录如下: 

 一、安装vue-cli 3

  首先官方文档:https://cli.vuejs.org/

  官方文档包含了很多的内容,很靠谱,比较全面,第一步当然是把官方文档看一遍。

 安装

  Node 版本要求

  Vue CLI 需要 Node.js 8.9 或更高版本 (推荐LTS)。你可以使用 nvm 或 nvm-windows在同一台电脑中管理多个 Node 版本。

  可以使用下列任一命令安装这个新的包:

npm install -g @vue/cli
# OR
yarn global add @vue/cli

  创建项目

  运行以下命令来创建一个新项目. 选择babel,eslint 还有router 等等!

  vue create demo

  安装之后执行就可以使用了 

cd 项目名
 
npm run serve

  

 二、配置vux
  在网上搜了会,发现几乎都是vue-cli旧版的配置方法,有一些已经不能用了,在这里整理下正确的配置方法

  安装各插件

  1、在项目里面安装vux

npm install vux --save

  2、安装vux-loader(必须安装)

npm install vux-loader --save-dev

  3、安装less-loader(这个是用以正确编译less源码,否则会出现 ' Cannot GET / ')

npm install less less-loader --save-dev

  4、安装yaml-loader  (以正确进行语言文件读取)

npm install yaml-loader --save-dev

 

  配置vux环境

  这里注意由于vue-cli3使用的是webpack4而且更新过vue-loader,所以vux使用起来会存在一些兼容的问题,这里需要额外配置一下。

  官方更新过vue/cli3.x 的vue-loader,正常配置会导致加载错误。所以需要手动指定vue-loader的版本来解决加载问题。

yarn add vue-loader@14.2.2 -D
or
npm install vue-loader@14.2.2 -D

  在packageage同级目录下新建一个文件vue.config.js

  vue-cli3.x的一些服务配置整个的结构都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置提供了vue.config.js。那么问题来了,对于这么一个入口,肯定不能直接按照vux-loader的方法直接在配置文件置空webpackConfig了。而单独组件引用的话又被告知         使用错误(事实上都直接报错了,因为没有正确对于组件的load)。
       参照vux-loader文档的配置说明,那么就是merge以下vux-loader的配置到webpackConfig里面呗,接下来就简单了。我们只需要在vue.config.js文件中的webpackConfig的配置中mergevux-loader就行了

  根据官方文档,在文件里加入以下内容:

module.exports = {
    configureWebpack: config => {
        require('vux-loader').merge(config, {
            options: {},
            plugins: ['vux-ui']
        })
    }
}

 

  目前就可以使用了, 不过到目前为止 还是有些小问题 提的issue 还没有回应 如果采用解构的方式在main.js 引用 并不能成功引用  

  可以采用这种方式(示例)

import Popup from 'vux/src/components/popup'
import Alert from 'vux/src/components/alert'
import Confirm from 'vux/src/components/confirm'
import Cell from 'vux/src/components/cell'

  

ok  就酱紫~~~

转载于:https://www.cnblogs.com/fangshidaima/p/9889353.html

你可能感兴趣的:(javascript)