Vue项目中vue.config.js常用配置项详解

 更新时间:2025年04月15日 10:13:22   作者:二川bro  
在 Vue CLI 创建的项目中,vue.config.js 是核心配置文件,用于定制化构建、开发和部署流程,本文详细解析了该文件的常用配置项,并结合代码示例和表格说明,帮助开发者高效管理项目配置,提升开发体验,需要的朋友可以参考下

摘要

在 Vue CLI 创建的项目中,vue.config.js 是核心配置文件,用于定制化构建、开发和部署流程。本文详细解析了该文件的常用配置项,包括基础路径、开发服务器、Webpack 配置、CSS 预处理、插件选项及环境变量管理,并结合代码示例和表格说明,帮助开发者高效管理项目配置,提升开发体验。

一、引言

Vue CLI 是 Vue.js 官方提供的脚手架工具,它简化了 Vue.js 项目的搭建和开发流程。在 Vue CLI 创建的项目中,vue.config.js 是一个可选的配置文件,用于对 Vue CLI 项目进行自定义配置。通过该文件,开发者可以修改 Webpack 配置、配置开发服务器、设置静态资源路径、集成第三方插件等,以满足项目的特定需求。本文将详细介绍 vue.config.js 中常用的配置项,帮助开发者更好地理解和使用该文件。

二、基础配置项

(一)publicPath

  • 作用:设置应用的基础路径,即项目中静态资源的引用路径。它相当于 Webpack 中的 output.publicPath 配置。
  • 适用场景:当应用部署在子路径下(如 example.com/myapp/)或通过 CDN 提供静态资源时,需要设置该路径。
  • 示例代码
module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/myapp/' : '/'
};

(二)outputDir

  • 作用:指定构建输出目录,默认是 dist
  • 适用场景:当需要将构建文件输出到不同的目录中(如 CI/CD 流程或特定的文件结构需求)时,可以修改该配置。
  • 示例代码
module.exports = {
  outputDir: 'build'
};

(三)assetsDir

  • 作用:设置静态资源(如图片、字体、CSS)的子目录。
  • 适用场景:当需要对静态资源进行分类管理时,可以使用该配置。
  • 示例代码
module.exports = {
  assetsDir: 'assets'
};

(四)lintOnSave

  • 作用:决定在保存时是否启用 ESLint 检查。
  • 适用场景:在开发过程中,可以通过该配置控制代码检查的开启和关闭。
  • 选项说明
    • true:启用 ESLint 检查。
    • false:禁用 ESLint 检查。
    • 'error':只有在 ESLint 报错时才中断构建。
  • 示例代码
module.exports = {
  lintOnSave: true
};

(五)常用配置项表格总结

配置项类型默认值说明
publicPathString‘/’应用的基础路径
outputDirString‘dist’构建输出目录
assetsDirString‘’静态资源的子目录
lintOnSaveBoolean/Stringtrue是否启用 ESLint 检查

三、开发服务器配置项

(一)devServer

  • 作用:修改 Webpack DevServer 的设置,包括端口、热重载、代理等。
  • 常用配置项
    • port:开发服务器的端口。
    • open:启动后是否自动打开浏览器。
    • hot:启用热模块替换(HMR)。
    • proxy:配置代理,用于解决开发环境中的跨域问题。
  • 示例代码
module.exports = {
  devServer: {
    port: 8080,
    open: true,
    hot: true,
    proxy: {
      '/api': {
        target: 'http://localhost:5000',
        changeOrigin: true,
        pathRewrite: { '^/api': '' }
      }
    }
  }
};

(二)开发服务器配置项表格总结

配置项类型默认值说明
portNumber8080开发服务器的端口
openBooleanfalse启动后是否自动打开浏览器
hotBooleantrue是否启用热模块替换
proxyObject{}代理配置,用于解决跨域问题

四、Webpack 配置项

(一)configureWebpack

  • 作用:直接修改 Webpack 的配置,允许添加插件、修改模块解析等。
  • 适用场景:当需要对 Webpack 进行个性化修改时,可以使用该配置。
  • 示例代码
module.exports = {
  configureWebpack: {
    plugins: [
      // 添加插件
    ],
    resolve: {
      alias: {
        '@': '/src' // 配置路径别名
      }
    }
  }
};

(二)chainWebpack

  • 作用:使用 webpack-chain 提供的链式 API,更细粒度地修改 Webpack 配置。
  • 适用场景:当需要对 Webpack 配置进行复杂的修改时,可以使用该配置。
  • 示例代码
module.exports = {
  chainWebpack: config => {
    config.entry('app').add('./src/main.js');
    config.plugin('html').tap(args => {
      args[0].title = 'My Vue App';
      return args;
    });
  }
};

(三)Webpack 配置项表格总结

配置项类型默认值说明
configureWebpackObject/Function{}直接修改 Webpack 配置
chainWebpackFunction-使用链式 API 修改 Webpack 配置

五、CSS 配置项

(一)css

  • 作用:控制 CSS 相关的构建行为,包括 CSS 的模块化、是否提取 CSS 文件等。
  • 常用配置项
    • extract:在生产环境中将 CSS 提取到单独的文件。
    • sourceMap:是否生成 CSS 源映射文件。
    • loaderOptions:配置各类 CSS 预处理器(如 SASS、LESS)的选项。
  • 示例代码
module.exports = {
  css: {
    extract: true,
    sourceMap: false,
    loaderOptions: {
      sass: {
        prependData: `@import "~@/styles/variables.scss";`
      }
    }
  }
};

(二)CSS 配置项表格总结

配置项类型默认值说明
extractBooleantrue是否提取 CSS 到单独文件
sourceMapBooleanfalse是否生成 CSS 源映射文件
loaderOptionsObject{}配置 CSS 预处理器的选项

六、插件配置项

(一)pluginOptions

  • 作用:为第三方插件配置选项,Vue CLI 提供了很多插件,这些插件通常可以通过 pluginOptions 进行个性化配置。
  • 适用场景:当使用第三方插件时,需要为其提供额外的配置选项。
  • 示例代码
module.exports = {
  pluginOptions: {
    'my-plugin': {
      someOption: true
    }
  }
};

(二)插件配置项表格总结

配置项类型默认值说明
pluginOptionsObject{}为第三方插件配置选项

七、环境变量配置项

(一)环境变量

  • 作用:根据不同的环境(开发、生产等)配置不同的设置。
  • 适用场景:当项目需要在不同的环境中运行时,可以通过环境变量来配置不同的设置。
  • 示例代码
// .env.development
VUE_APP_TITLE = 'Development App'

// .env.production
VUE_APP_TITLE = 'Production App'

// vue.config.js
module.exports = {
  configureWebpack: config => {
    config.plugins.push(
      new webpack.DefinePlugin({
        'process.env.VUE_APP_TITLE': JSON.stringify(process.env.VUE_APP_TITLE)
      })
    );
  }
};

八、结论

vue.config.js 是 Vue CLI 项目中非常重要的配置文件,通过合理配置可以极大地提升项目的开发体验和维护效率。本文详细介绍了 vue.config.js 中常用的配置项,包括基础配置、开发服务器配置、Webpack 配置、CSS 配置、插件配置和环境变量配置等。开发者可以根据项目的实际需求,选择合适的配置项进行配置,以满足项目的特定需求。同时,建议开发者对 vue.config.js 进行版本控制,记录每次修改的原因和内容,便于回溯和协作。

以上就是Vue项目中vue.config.js常用配置项详解的详细内容,更多关于Vue vue.config.js配置项的资料请关注脚本之家其它相关文章!

相关文章

  • VUE实现可随意拖动的弹窗组件

    VUE实现可随意拖动的弹窗组件

    今天小编就为大家分享一篇VUE实现可随意拖动的弹窗组件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue中报错Duplicate keys detected:'1'. This may cause an update error的解决方法

    vue中报错Duplicate keys detected:'1'. This may c

    我们在vue开发过程中常会遇到一些错误,这篇文章主要给大家介绍了关于vue中报错Duplicate keys detected:‘1‘. This may cause an update error的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • vue实现会议室拖拽布局排座功能

    vue实现会议室拖拽布局排座功能

    vue-draggable-resizable-gorkys是一更强大的拖拽组件,可以随意拖拽,有点坐标,会议室拖拽布局排座是vue-draggable结合vue-draggable-resizable-gorkys进行开发的,本文重点给大家介绍vue实现会议室拖拽布局排座,感兴趣的朋友一起看看吧
    2023-11-11
  • 在Vue中使用JSONP进行跨域数据传输的完整指南

    在Vue中使用JSONP进行跨域数据传输的完整指南

    本文将介绍JSONP(JSON with Padding)的原理和用法,以及如何使用JSONP进行跨域数据传输,详细解释JSONP的工作原理,并提供前端和后端的代码示例,帮助你理解和实践JSONP跨域请求,需要的朋友可以参考下
    2023-06-06
  • vue项目引入字体.ttf的方法

    vue项目引入字体.ttf的方法

    今天小编就为大家分享一篇vue项目引入字体.ttf的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue3+element-plus Dialog对话框的使用与setup 写法的用法

    vue3+element-plus Dialog对话框的使用与setup 写法的用法

    这篇文章主要介绍了vue3+element-plus Dialog对话框的使用 与 setup 写法的使用,本文通过两种方式结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • vue项目打包之开发环境和部署环境的实现

    vue项目打包之开发环境和部署环境的实现

    这篇文章主要介绍了vue项目打包之开发环境和部署环境的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 详解.vue文件中style标签的几个标识符

    详解.vue文件中style标签的几个标识符

    这篇文章主要介绍了详解.vue文件中style标签的几个标识符,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • vue 中 element-ui table合并上下两行相同数据单元格

    vue 中 element-ui table合并上下两行相同数据单元格

    这篇文章主要介绍了vue 中 element-ui table合并上下两行相同数据单元格,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • Vue 自定义ColorPicker及使用方法

    Vue 自定义ColorPicker及使用方法

    这篇文章主要介绍了Vue 自定义ColorPicker及使用方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06

最新评论