vue.config.js配置详解

简介: 【8月更文挑战第16天】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](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 的) 目录。

示例:不做修改,默认打包
image.png示例:默认值修改为static
image.png
配置建议:不做修改

indexPath

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

示例:修改默认为“app/hello”
image.png
示例:修改默认为“hello.html”
image.png
配置建议:不做修改

lintOnSave

类型 默认值 含义
boolean | 'warning' | 'default' | 'error' 'default' js语法检查提示的信息类型

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

参数名 主要作用
true | 'warning' 会强制 eslint-loader 将 lint 错误输出为编译警告,不会导致编译失败。
'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')
image.png
打包后查看浏览器控制台:
没有开启 productionSourceMap运行后浏览器控制台显示效果:
image.png
开启productionSourceMap运行后浏览器控制台显示效果:
image.png
可以看出,开启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 有:

  • css-loader
  • postcss-loader
  • sass-loader
  • less-loader
  • stylus-loader

    devServer.proxy

    vue项目开发时,会在本地请求某一接口,本地的服务一般是localhost:8080,在请求时会出现跨越问题。
    devServer是请求的一个中间件,可以对请求进行拦截和处理。
    主要应用:

    • 通过代理解决请求跨域的问题
    • 修改请求的路径
      | 类型 | 默认值 | 含义 |
      | --- | --- | --- |
      | string | Object |
      | 如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。 |

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

说明:
优点:配置简单,请求资源时直接发给前端(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配置的代理仅在本地开发下有效(打包后配置文件就木有用了!)

相关文章
|
2月前
|
JavaScript
Nest.js 实战 (十一):配置热重载 HMR 给服务提提速
这篇文章介绍了Nest.js服务在应用程序引导过程中,TypeScript编译对效率的影响,以及如何通过使用webpackHMR来降低应用实例化的时间。文章包含具体教程,指导读者如何在项目中安装依赖包,并在根目录下新增webpack配置文件webpack-hmr.config.js来调整HMR相关的配置。最后,文章总结了如何通过自定义webpack配置来更好地控制HMR行为。
|
2月前
|
算法 安全 Java
微服务(四)-config配置中心的配置加解密
微服务(四)-config配置中心的配置加解密
|
17天前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
174 4
|
30天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
136 0
|
2月前
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
81 0
Vue3基础(19)___vite.config.js中配置路径别名
|
1月前
|
前端开发 JavaScript
vite vue3 config配置
【10月更文挑战第5天】
53 0
|
3月前
|
移动开发 JavaScript 前端开发
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
这篇文章介绍了在UniApp H5项目中处理跨域问题的两种方法:通过修改manifest.json文件配置h5设置,或在项目根目录创建vue.config.js文件进行代理配置,并提供了具体的配置代码示例。
UniApp H5 跨域代理配置并使用(配置manifest.json、vue.config.js)
|
3月前
|
Web App开发 安全 JavaScript
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
|
3月前
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置
|
3月前
|
JavaScript Java Python
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容
【Azure 应用服务】在Azure App Service for Windows 中部署Java/NodeJS/Python项目时,web.config的配置模板内容