vue-cli基础知识及其常用配置详解,看完没收获来砍我

vue-cli基础知识及其使用

vue-cli介绍

简介:

Vue CLI 是 Vue 的项目的一个开发工具,简单来说,可以快速生成一套基于Vue完整的前端框架 ,因此也称之为脚手架。(vue3中也可以使用vite作为全新的脚手架)


Vue CLI 是构建在 Webpack 之上的,因此开发服务器和构建功能和性能都将是 Webpack 的超集。

主要功能

CLI

CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令。它可以通过 vue create 快速创建一个新项目的脚手架。

CLI 服务

CLI 服务 (@vue/cli-service) 是一个开发环境依赖。它是一个 npm 包,局部安装在每个 @vue/cli 创建的项目中。CLI 服务是构建于 webpackwebpack-dev-server 之上的。它包含了:

  • 加载其它 CLI 插件的核心服务;

  • 一个针对绝大部分应用优化过的内部的 webpack 配置;

  • 项目内部的 vue-cli-service 命令,提供 serve、build 和 inspect 命令。

CLI 插件

CLI 插件是向你的 Vue 项目提供可选功能的 npm 包,例如 Babel/TypeScript 转译、ESLint 集成、单元测试和 end-to-end 测试等。

版本号及名称问题

  • Vue CLI 4.5以下,只能创建Vue2项目
  • Vue CLI 4.5及以上,可以创建Vue3项目,当然,创建项目的时候可以选择Vue2项目
  • @vue/cli是vue-cli版本3以上的npm包名称:

如果是安装3以下版本的脚手架,命令:npm install -g -cli@版本号
如果是安装3以上版本的脚手架,命令:npm install -g @vue/cli@版本号

vue-cli使用webpack进行打包编译、实现热更新等功能。它的版本号和webapck基本是对应的。

  • vue-cli3对应webappck3
  • vue-cli4对应webappck4
  • vue-cli5对应webappck5

使用cli安装与运行项目

vue-cli2

npm install vue-cli -g   //下载

vue init webpack 2.0project  //创建项目

启动项目

npm run dev

vue-cli3/cli4

npm install -g vue@cli   //下载

vue create 3.0project    //或通过视图创建项目:vue ui   3.0project为自定义项目名称

启动项目

npm run serve

项目结构

vue-cli2

vue-cli3/4

vue-cli3/cli4中移除了配置文件目录:config 和** build **文件夹。

同时移除了 static 静态文件夹,新增了 public 文件夹,将 index.html 移动到 public 中。

vue-cli全局配置vue.config.js

全局 CLI 配置简介

你也可以使用 vue config 命令来审查或修改全局的 CLI 配置

vue.config.js用法简介

vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。

这个文件应该导出一个包含了选项的对象:

module.exports = {
  // 选项...
}

vue.config.js常用配置详解

publicPath

类型 默认值 含义
string “/” 部署应用包时的基本 URL。

示例:

服务器设置的访问地址为 ip + note

1.不配置

本地请求路径: file:///C:/cfile:///C:/css/app.881ff724.cssss/app.881ff724.css (页面空白)

网络请求路径: http://www.shixiaoshi.site/css/app.881ff724.css (无法访问)

2.配置相对路径

module.exports = {
    publicPath:'./'
}

本地请求路径: file:///C:/Users/Administrator/Desktop/dist/css/app.881ff724.css(正常访问)

网络请求路径:http://www.shixiaoshi.site/note/css/app.881ff724.css(正常访问)

3.配置./app

本地请求路径: file:///C:/Users/Administrator/Desktop/dist/app/css/app.881ff724.css(页面空白)

网络请求路径:http://www.shixiaoshi.site/note/app/css/app.881ff724.css(无法访问)

outputDir

类型 默认值 含义
string “dist” 当运行 vue-cli-service build 时生成的生产环境构建文件的目录

注:使用npm run build (vue-cli-service build)命令打包项目时,如果dist目录已经存在,打包之前原来的dist目录会被删除,构建时传入 --no-clean 可关闭该行为。

 "scripts": {
    "serve": "vue-cli-service serve --open",
    "build": "vue-cli-service build --no-clean",   //--no-clean 可关闭该行为。
    "test:unit": "vue-cli-service test:unit",
    "lint": "vue-cli-service lint"
  },

配置建议:不做修改

assetsDir

类型 默认值 含义
string “” 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。

示例:不做修改,默认打包

示例:默认值修改为static

配置建议:不做修改

indexPath

类型 默认值 含义
string index.html 指定index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。

示例:修改默认为“app/hello”

示例:修改默认为“hello.html”

配置建议:不做修改

lintOnSave

类型 默认值 含义
boolean ‘warning’ ‘default’

这个值会在 @vue/cli-plugin-eslint 被安装之后生效。

参数名 主要作用
true ‘warning’
‘default’ 会强制 eslint-loader 将 lint 错误输出为编译错误,导致编译失败。
false 关闭代码检查
‘error’ 会使得 eslint-loader 把 lint 警告输出为编译错误,导致编译失败。

也可以通过设置让浏览器 overlay 同时显示警告和错误:

// vue.config.js
module.exports = {
  devServer: {
    overlay: {
      warnings: true,
      errors: true
    }
  }
}

配置建议:设置为 false,关闭代码检查

productionSourceMap

类型 默认值 含义
boolean true 是否开启生产环境的 source map,设置为 false 可以加速生产环境构建。

什么是 source map?

source map 直译过来就是资源地图。使用source map定位的时浏览器控制台可以输出语句在项目文件的某一具体文件位置,便于代码调试。

示例:

在app.vue里 添加这样一条代码:console.log(‘11111’)

打包后查看浏览器控制台:

没有开启 productionSourceMap运行后浏览器控制台显示效果:

开启productionSourceMap运行后浏览器控制台显示效果:

可以看出,开启productionSourceMap后,可以定位到具体的app.vue文件里,便于线上代码调试!

配置建议:设置为 false,线上部署别人不会看到你的源码,更加安全,访问速度更快!

parallel

类型 默认值 含义
boolean require(‘os’).cpus().length > 1 启用多核打包

css

类型 默认值 含义
Object {} 设置css相关属性
参数名 主要作用
requireModuleExtension
sourceMap
loaderOptions 向 CSS 相关的 loader 传递选项

css.loaderOptions

类型 默认值 含义
Object {} 向 CSS 相关的 loader 传递选项。
module.exports = {
  css: {
    loaderOptions: {
      css: {
        // 这里的选项会传递给 css-loader
      },
      postcss: {
        // 这里的选项会传递给 postcss-loader
      }
    }
  }
}

支持的 loader 有:

devServer.proxy

vue项目开发时,会在本地请求某一接口,本地的服务一般是localhost:8080,在请求时会出现跨越问题。

devServer是请求的一个中间件,可以对请求进行拦截和处理。

主要应用:

    • 通过代理解决请求跨域的问题
    • 修改请求的路径
类型 默认值 含义
string Object

解决方案:

方法一: 最简单的就是直接替换请求地址(xxx.config.js)

说明:

优点:配置简单,请求资源时直接发给前端(8080)即可。

缺点:不能配置多个代理,不能灵活的控制请求是否走代理。

工作方式:若按照上述配置代理,当请求了前端不存在的资源时,那么该请求会转发给服务器 (优先匹配前端资源)

方法二: 常用的方式(xxx.config.js)

module.exports = {
	devServer: {
      proxy: {
      '/api1': {// 匹配所有以 '/api1'开头的请求路径
        target: 'http://localhost:5000',// 代理目标的基础路径
        changeOrigin: true,
        pathRewrite: {'^/api1': ''}
      },
      '/api2': {// 匹配所有以 '/api2'开头的请求路径
        target: 'http://localhost:5001',// 代理目标的基础路径
        changeOrigin: true,
        pathRewrite: {'^/api2': ''}//路径的正则替换
      }
    }
  }
}
/*
   changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000
   changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:8080
   changeOrigin默认值为true
   pathRewrite:本地请求的路径经过正则匹配传递给服务器的实际路径,如本地为"/api2",传递给服务器后为"/"
*/

说明:

优点:可以配置多个代理,且可以灵活的控制请求是否走代理。

缺点:配置略微繁琐,请求资源时必须加前缀。

注意:Vue配置的代理仅在本地开发下有效(打包后配置文件就木有用了!)

猜你喜欢

转载自blog.csdn.net/weixin_46769087/article/details/128247366