vue cli

1 vue cli

使用vue开发项目,要书写webpack配置,创建项目,创建文件等需要时间。       

为了做性能优化,需要大量的配置等等,在开发项目前,要准备大量的工作内容。

vue为了简化这一开发方式,提供了vue-cli脚手架。

通过npm安装vue-cli: npm install -g @vue/cli

此时提供了vue指令,输入vue -v可以查看

创建项目:

执行"vue create 项目名称"指令就可以创建项目

输入vue create 项目名称 指令时会有一些选项提示:

 

 

 

 

 

 

2 目录部署

node_modules 依赖的模块

public 静态资源

  index.html 入口文件

  manifest.json 离线缓存配置

  favicon.ico 网页logo

  robots.txt 爬虫配置(告知用户可以在网站中抓取哪些文件)

  img 图片资源目录(可以直接访问,没有被webpack打包处理)

src 开发目录

  assets 静态资源

  components 页面间共享的组件

  views 页面组件

  App.vue 应用程序组件

  router.js 路由文件

  store.js vuex文件

  main.js 入口文件

  registerServiceWorker.js  web workers文件(和浏览器做通信,判断是否联网)

test 单元测试目录

.browserslistrc 浏览器配置(告知我们网址支持哪些浏览器)

.eslintrc es语法校验(判断js代码是否符合规范)

.gitnore 提交配置(git提交时忽略的文件)

babel.config.js babel配置

jest.config.js 单元测试配置

package.json npm包配置

postcss.config.js css配置

readme.rd 项目介绍文件

yarn.lock yarn锁文件

3 指令

ts开发

创建项目的时候,可以选择ts语法或者es6语法

选择ES6会使用.js文件

选择ts会使用.ts文件

指令:

serve 启动项目,默认端口号是8080

build 发布项目,默认向dist目录下发布

test:unit 启动单元测试

既可以使用yarn指令运行,也可以使用npm run指令运行。

使用yarn指令要安装: npm install yarn

4 配置

查看webpack配置,用inspect指令:vue inspect > 文件路径

  会把webpack的所有配置项都输出到所写的文件路径中

还可在vue.config.js中。自定义配置:

在配置文件中,有两个环境,

  一个是开发环境,执行yarn serve时候的环境

  一个是发布环境,执行yarn build时候的环境

  通过process.env.NODE_ENV来识别环境:

    development表示开发环境

    production表示发布环境

在vue.config.js文件中,要分别为开发环境和发布环境定义配置:

 可以定义两类配置:

  一类是webpack语法配置

    在configureWebpack中配置

  一类是vue cli自身的语法配置

    outputDir 静态资源发布位置

    indexPath 模板发布位置

    publicPath 模板中引入的静态资源相对位置

5 PWA

是一个渐进式的web应用,介于web应用与源生应用之间的一类应用,可以像web应用一样开发。

实现PWA应用:有个好文的地址:https://www.jianshu.com/p/279fc85f0ec6

可以具有源生应用的一些功能,

其中以下文件就是为了实现这些功能的。

  manifest.json 离线缓存配置

  registerServiceWorker.js web workers文件

6 单元测试

测试就是描述一段话,判断是否正确(断言)。

基于文件或者模块(组件)的测试,则称之为单元测试

在vue cli中,如果使用的是jest框架,则测试结果有两种:

  一种是测试成功,所有的单元测试都成功。

  一种是测试失败,有一个测试是失败的。

   启动测试:yarn test:unit
        npm run test:unit

   测试文件:在单元测试中,有三类文件可以被测试

  1 放在test目录中的文件

  2 文件的名添加.test.后缀的文件

  3 文件的名添加.spec.后缀的文件

命名规范:通常与被测试的文件同名

6.1 测试方法

describe 测试整体描述

  第一个参数表示描述

  第二个参数是函数,表示测试内容

     it 一次测试的描述

      第一个参数表示描述

      第二个参数是函数,表示本次测试的内容

        expect 断言方法

          参数就是描述

          要对返回值做判断(断言)

6.2 断言方法

常见的断言方法有:

  toBe 表示 ===

  toEqual 字面量形式是否相等

  toMatch 是否正则匹配

  toContain 是否包含

  toBeTruthy 是否为真

  toBefalsy 是否为假

  ......

6.3 周期方法

beforeEach 每一个it语句执行前

afterEach 每一个it语句执行后

beforeAll 所有的it语句执行前

afterAll 所有的it语句执行后

只对当前文件的it语句生效,其它文件无效

例如:在src目录下创建一个demo.js文件,对demo文件测试:

 对demo.js文件测试则要在test目录下创建同名测试文件(以添加.test.或者.spec.后缀的文件):

6.4 测试 store

由于store中有包含修改数据的逻辑(mutations以及action中),因此要对它们进行测试。

此时store的这些组成部分要单独定义出来,这样才能测试。

例如:测试store中的mutations中的消息,在store.js文件中:

 对store.js文件测试则要在test目录下创建同名测试文件(以添加.test.或者.spec.后缀的文件):

6.5 测试组件

在vue文件中,定义的组件只是Vue.extend方法的参数对象。因此不能直接使用,要转成实例化对象再使用,有两种方式:

第一种:new Vue(组件对象),返回的是vue实例化对象

  例如:当我们创建一个名为"Haha"的vue组件,通过第一种方式获取vue实例测试这个组件:

第二种: 通过组件类的方式:

  第一步 let Comp = Vue.extend(组件对象);

  第二步 实例化 new Comp()

不论是哪一种方式,都可以得到组件,但是组件没有上树,无法获取$el容器元素。

为了获取$el容器元素,要使用$mount方法:

每一次测试都获取一次组件实例太复杂,则可以利用周期方法:

$nextTick

会检测视图的更新,更新完毕,执行回调函数。

该方法实现了Promise规范。

所以可以通过then方法监听结果。

shallowMount

vue cli为了方便测试组件,提供了一个 shallowMount 方法。

使用时要引入:import { shallowMount } from '@vue/test-utils'

该方法可以将组件实例化,并且执行$mount方法上树。

通过该方法,就可以得到一个组件实例化对象:

  第一个参数是组件对象

  第二个参数是配置对象(propsData: 传递给组件的属性数据)

提供了text方法,可以获取其视图中的内容。

注意:使用单元测试,去测试视图等很麻烦,效率低。用单元测试,去测试一些业务逻辑收益还是很大的。

posted @ 2021-06-02 22:14  没有茅台喝啤酒也行  阅读(96)  评论(0编辑  收藏  举报