vue.config.js全部详细配置

vue.config.js 是一个可选的配置文件,如果项目的根目录中没有这个文件,你需要手动创建它。这个文件是一个 Node.js 模块,会导出一个包含了 Vue CLI 项目配置的对象。

下面是一些常见的 vue.config.js 配置项:

基本路径

js 复制代码
module.exports = {  
  publicPath: './'  
}

输出目录

java 复制代码
javascript复制代码
	module.exports = {  

	  outputDir: 'dist'  

	}

放置生成的静态资源 (js、css、img、fonts)

java 复制代码
javascript复制代码
	module.exports = {  

	  assetsDir: ''  

	}

配置 webpack-dev-server 行为

markdown 复制代码
javascript复制代码
	module.exports = {  

	  devServer: {  

	    port: 8080, // 端口号  

	    open: true, // 自动打开浏览器  

	    hotOnly: false, // 热更新  

	    proxy: { // 配置跨域  

	      '/api': {  

	        target: '<url>',  

	        ws: true,  

	        changeOrigin: true  

	      },  

	      '/foo': {  

	        target: '<other_url>'  

	      }  

	    }  

	  }  

	}

配置 webpack

markdown 复制代码
javascript复制代码
	module.exports = {  

	  configureWebpack: {  

	    plugins: [  

	      // 配置插件  

	    ]  

	  },  

	  chainWebpack: config => {  

	    // 修改 webpack 配置  

	  }  

	}

CSS 相关配置

markdown 复制代码
javascript复制代码
	module.exports = {  

	  css: {  

	    loaderOptions: {  

	      sass: {  

	        prependData: `@import "@/styles/variables.scss";`  

	      }  

	    }  

	  }  

	}

配置 devtools

java 复制代码
javascript复制代码
	module.exports = {  

	  devtool: 'source-map'  

	}

生产环境构建

java 复制代码
javascript复制代码
	module.exports = {  

	  productionSourceMap: false, // 是否生成 sourceMap 文件  

	  parallel: require('os').cpus().length - 1, // 构建时启用多进程  

	  // 其他 webpack 配置...  

	}

配置 pwa

markdown 复制代码
javascript复制代码
	module.exports = {  

	  pwa: {  

	    name: 'My App',  

	    themeColor: '#4DBA87',  

	    msTileColor: '#000000',  

	    appleMobileWebAppCapable: 'yes',  

	    appleMobileWebAppStatusBarStyle: 'black',  

	    iconPaths: {  

	      favicon32: 'favicon.ico',  

	      favicon16: 'favicon.ico',  

	      appleTouchIcon: 'icons/apple-touch-icon-152x152.png',  

	      maskIcon: 'icons/safari-pinned-tab.svg',  

	      msTileImage: 'icons/msapplication-icon-144x144.png'  

	    }  

	  }  

	}

配置 Babel

markdown 复制代码
javascript复制代码
	module.exports = {  

	  babel: {  

	    presets: [  

	      // 预设配置  

	    ],  

	    plugins: [  

	      // 插件配置  

	    ]  

	  }  

	}

第三方插件配置

markdown 复制代码
javascript复制代码
	module.exports = {  

	  // 其他插件的配置  

	  pluginOptions: {  

	    // 例如配置 element-ui 插件  

	    elementUi: {  

	      size: 'small'  

	    }  

	  }  

	}

这些只是 vue.config.js 的一些常见配置项,实际上还有很多其他的配置项和细节可以调整。你可以根据项目的实际需求进行配置。

注意:上述示例中的 <url><other_url> 需要替换为你实际的 URL。同时,这些配置项并不一定都需要在你的 vue.config.js 文件中全部列出,你可以只选择你需要的配置项进行配置。

vue.config.js 中,configureWebpack 选项允许你修改内部的 Webpack 配置。这给了你很大的灵活性来添加或覆盖默认配置。

configureWebpack 的详细配置示例:

markdown 复制代码
javascript复制代码
	module.exports = {  

	  configureWebpack: {  

	    // 添加全局变量  

	    plugins: [  

	      new webpack.DefinePlugin({  

	        'process.env.VUE_APP_TITLE': JSON.stringify('My App')  

	      })  

	    ],  

	  

	    // 修改输出  

	    output: {  

	      // 输出目录(相对于 process.cwd() 或 outputDir)  

	      path: path.resolve(__dirname, 'dist'),  

	      // 文件名  

	      filename: '[name].[contenthash].js',  

	      // 其他的输出配置...  

	    },  

	  

	    // 修改模块解析规则  

	    resolve: {  

	      // 别名配置  

	      alias: {  

	        '@': path.resolve(__dirname, 'src')  

	      },  

	      // 其他的解析配置...  

	    },  

	  

	    // 修改模块规则  

	    module: {  

	      rules: [  

	        {  

	          test: /.vue$/,  

	          loader: 'vue-loader',  

	          options: {  

	            // vue-loader 配置项  

	            compilerOptions: {  

	              isCustomElement: tag => tag === 'my-custom-element'  

	            }  

	          }  

	        },  

	        // 其他规则...  

	      ]  

	    },  

	  

	    // 优化和性能  

	    optimization: {  

	      splitChunks: {  

	        chunks: 'all', // 对同步加载和异步加载的chunks都进行分割  

	      },  

	      minimize: true, // 开启压缩  

	    },  

	  

	    // 添加或覆盖 devtool 配置  

	    devtool: 'source-map',  

	  

	    // 修改其他 Webpack 配置项...  

	  }  

	}

在上面的示例中:

  • 使用 webpack.DefinePlugin 添加了一个全局变量 process.env.VUE_APP_TITLE
  • 修改了输出的目录和文件名。
  • 添加了别名配置,使得 @ 可以直接指向 src 目录。
  • .vue 文件加载器 vue-loader 进行了配置。
  • 启用了代码分割和压缩。
  • 设置了 source map。

你可以根据需要修改或添加更多的 Webpack 配置项。记住,任何你添加或修改的配置都应该遵循 Webpack 的配置规范。

请注意,configureWebpack 是一个对象,因此你可以在其中添加任何有效的 Webpack 配置。如果你想要完全替换掉默认的 Webpack 配置,可以使用 configureWebpack.rendererconfigureWebpack.server 字段分别针对客户端和服务器端进行配置。

最后,确保你使用的 Webpack 配置项与你的 Webpack 版本兼容,因为不同版本的 Webpack 可能会有不同的配置项和语法。

相关推荐
无羡仙1 小时前
从零构建 Vue 弹窗组件
前端·vue.js
计算机毕设VX:Fegn08954 小时前
计算机毕业设计|基于springboot + vue动物园管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
北辰alk4 小时前
深入理解Vue数据流:单向与双向的哲学博弈
vue.js
北辰alk5 小时前
解决Vue打包后静态资源图片失效的终极指南
vue.js
Jing_Rainbow7 小时前
【Vue-2/Lesson62(2025-12-10)】模块化与 Node.js HTTP 服务器开发详解🧩
前端·vue.js·node.js
冴羽8 小时前
2026 年 Web 前端开发的 8 个趋势!
前端·javascript·vue.js
五仁火烧8 小时前
Vue3 项目的默认端口行为
服务器·vue.js·nginx·容器·vue
Younglina9 小时前
一个纯前端的网站集合管理工具
前端·vue.js·chrome
pas13610 小时前
31-mini-vue 更新element的children
前端·javascript·vue.js
计算机程序设计小李同学11 小时前
婚纱摄影集成管理系统小程序
java·vue.js·spring boot·后端·微信小程序·小程序