Vue前端vue.config.js简介

以下是关于“Vue前端vue.config.js简介”的详细攻略:

什么是vue.config.js

vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在 vue.config.js 文件,那么它会被 @vue/cli-service 自动加载。该文件会接收一个默认的导出对象,如下所示:

// vue.config.js
module.exports = {
  // 配置选项
}

常用的配置选项

publicPath

  • 类型:string
  • 默认值:'/'

此项用于设置应用的根路径。举个例子,如果应用被部署在一个子路径下,你需要在这里指定子路径。例如:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production'
    ? '/production-sub-path/'
    : '/'
}

outputDir

  • 类型:string
  • 默认值:'dist'

此项用于设置打包后的文件输出目录。

devServer

  • 类型:Object

此项用于设置开发过程中的服务器配置选项。下面是一个示例:

module.exports = {
  devServer: {
    open: true, // 自动打开浏览器
    port: 8888, // 端口号
    proxy: {
      '/api': {
        target: 'http://localhost:3000', // 后端服务地址
        changeOrigin: true,
        pathRewrite: {
          '^/api': '' // 将 /api 重写为 /
        }
      }
    }
  }
}

此示例中,我们成功配置了一个开发用服务器,使用http://localhost:8888访问该项目将自动打开浏览器,并且将HTTP请求代理转发到后端服务地址http://localhost:3000中。其中/api是需要转发的地址前缀,target是需要转发到的后端服务地址。

css

  • 类型:Object

用于配置CSS加载选项。例如:

// vue.config.js
module.exports = {
  css: {
    loaderOptions: {
      less: {
        javascriptEnabled: true
      }
    }
  }
}

此选项用于新加入的Less加载配置。由于Less语言不支持自定义函数,仅支持Javascript函数。因此,需要开启javascriptEnabled配置项,将自定义的Less函数定义为Javascript函数来解析。

示例1:配置开发环境的服务器代理

在开发环境中,我们通常会需要将前端的HTTP请求代理转发到后端服务器。例如,假设我们有一个API地址http://localhost:3000/api/data,并需要在前端项目访问此地址时自动代理到此地址,可以使用如下配置:

// vue.config.js
module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:3000',
        changeOrigin: true,
        // 把/api改为/
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

此配置项将在开发环境下自动代理与/api相关的HTTP请求至后端地址,例如http://localhost:3000/api/data转换为http://localhost:8888/datachangeOrigin配置项设置为true表示开启跨域请求。

示例2:自定义Vue

如果需要在Vue项目中使用Tree Shaking功能,那么需要安装babel-plugin-transform-imports,并在vue.config.js中进行配置:

// vue.config.js
module.exports = {
  chainWebpack: config => {
    config.plugin('transformImports')
      .use(require.resolve('babel-plugin-transform-imports'), [
        {
          'vant': {
            'transform': 'vant/es/${member}',
            'preventFullImport': true
          }
        }
      ])
  }
}

此配置项将在对象vant中使用Tree Shaking功能。为了启动此功能,首先需要安装babel-plugin-transform-imports这个包,然后在vue.config.js中进行配置,将vant对象中的成员转换为按需加载的形式。preventFullImport配置项表示在输出该成员时,是否需要仅输出该成员,而不是整个库。

总结

以上是vue.config.js的简介及常用配置项的说明,通过此文档,你可以了解到如何在Vue项目中使用vue.config.js进行配置,以及基本的配置选项用途、示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue前端vue.config.js简介 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Vue配置环境变量的正确打开方式

    Vue是一种流行的JavaScript前端框架,它提供了许多强大的功能和工具帮助我们在开发前端应用时更加高效和方便。在Vue开发中,我们通常需要使用一些环境变量来配置不同环境的API地址、端口号、代理设置等等。这篇攻略将会为大家详细介绍在Vue中,如何配置环境变量的正确打开方式。 步骤一:在项目根目录下添加.env文件 首先,我们需要在Vue项目的根目录下添…

    Vue 2023年5月28日
    00
  • vue2 全局变量的设置方法

    当使用Vue.js开发时,我们可能需要在多个组件中使用相同的数据或方法,这时候设置全局变量就可以为我们节省不少代码。下面为大家提供一下Vue2全局变量的设置方法: 使用Vue.prototype Vue.prototype 允许我们向 Vue 构造器的原型上添加自定义的属性或方法,这样我们在开发过程中就能在组件中轻松地访问它们。 示例代码: // 在 mai…

    Vue 2023年5月27日
    00
  • Vue3发送post请求出现400 Bad Request报错的解决办法

    以下是 “Vue3发送post请求出现400 Bad Request报错的解决办法” 的完整攻略: 问题描述 在使用 Vue3 进行 post 请求时,可能会遇到 400 Bad Request 错误,这通常是因为请求的数据格式或参数设置错误导致的。 解决方法 1. 设置请求头 可以尝试设置请求头中的 Content-Type 和 Accept 字段,确保发…

    Vue 2023年5月27日
    00
  • vue轻量级框架无法获取到vue对象解决方法

    下面是“vue轻量级框架无法获取到vue对象解决方法”的完整攻略。 问题描述 在使用轻量级vue框架时,有时会出现无法获取到vue对象的情况,这给我们的开发带来了不便。那么,我们该如何解决这个问题呢? 解决方法 方式一:通过vue.mixin实现 我们可以通过vue.mixin方法,将vue对象注入到全局中;当这个框架引用了该全局对象时,我们就可以轻松的获取…

    Vue 2023年5月28日
    00
  • Vue数据监听方法watch的使用

    Vue数据监听方法watch的使用 Vue中的数据监听方法 watch 可以用于监听数据的变化并做出响应。在该攻略中,我们将详细介绍 watch 的基本概念、用法以及示例代码。 基本概念 在Vue中,使用 watch 可以监听到一个数据的变化,并做出响应。watch 有两个参数:要监听的数据,以及监听数据变化后要执行的回调函数。当监听的数据发生变化时,Vue…

    Vue 2023年5月27日
    00
  • 简单实现Vue的observer和watcher

    首先,要实现Vue的Observer和Watcher,需要进行以下步骤: Observer: Vue中的Observer实现了数据响应式,它可以监听数据的变化并自动更新相应的视图。实现Observer需要使用ES6的Proxy对象来劫持对象或数组的访问。代码示例: function observe(obj) { if(!obj || typeof obj !…

    Vue 2023年5月28日
    00
  • 解决vue路由发生了跳转但是界面没有任何反应问题

    在vue中,我们使用路由(Router)来实现页面的跳转。但是有时候我们会遇到这样一种问题:点击页面中的导航链接,路由发生了跳转,但是网页的界面没有任何变化。这是什么原因呢? 这通常是因为我们的路由跳转没有更新对应的视图(View)导致的。那么如何解决这个问题呢?下面,我将为大家介绍两种解决方案。 方案一:使用标签 我们可以在App.vue文件中使用vue提…

    Vue 2023年5月27日
    00
  • Vue.js特性Scoped Slots的浅析

    Vue.js特性Scoped Slots的浅析 首先来看Scoped Slots的定义。Scoped Slots即作用域插槽,它是Vue.js提供的一种高级组件通信方式。通过Scoped Slots,父级组件可以向子级组件插入内容,而且这个插入的内容还可以访问子级组件中的数据。下面将从两个方面分别介绍Scoped Slots的使用方法和示例。 Scoped …

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部