vue.config.js 个人配置

本文详细介绍了Vue CLI3的配置方式,包括如何通过vue.config.js文件进行基础配置,如公共路径设置、输出目录、静态资源目录、代码检查、静态资源命名、生产环境源地图、开发服务器设置等内容。

vue-cli3将webpack的基础配置全部内嵌了,统一使用: vue.config.js

当然,也可以单独创建,再引用

module.exports = {
  publicPath:'./',            // 公共,基本路径
  
  // 输出文件目录,不同的环境打不同包名
  outputDir: process.env.NODE_ENV === "development" ? 'devdist' : 'dist', 
  assetsDir: 'static',        // 默认会在目录同时生成三个静态目录:js,css,img
  lintOnSave: false,          // 关闭eslint代码检查
  filenameHashing: false,     // 生成的静态资源名, 默认加了hash, 命名.后面的为hash:chunk-2d0aecf8.71e621e9
  productionSourceMap:false,  // 生产环境下css 分离文件, sourceMap 文件
  // css: {   
  //     extract: true,      // 是否使用css分离插件 ExtractTextPlugin
  //     sourceMap: false,   // 开启 CSS source maps        
  //     modules: false,     // 启用 CSS modules for all css / pre-processor files.
  //     // css 预设器配置项
  //     loaderOptions: {
  //         sass: {
  //             data: `@import "./src/assets/hotcss/px2rem.scss";`
  //         }
  //     }        
  // },
  devServer: {
      port:8089,
      host: "localhost",   // 0.0.0.0    所有的地址均能访问
      open: true,          // 配置自动启动浏览器
      https: false, 
      hotOnly: false,
      overlay: {
          warnings: true,
          errors: true
      },
      //  配置代理,解决跨域的问题, 只有一个代理
      // proxy: null,
      // proxy: 'http://api.mc.com',
      
      // proxy: {
      //     "/api": {
      //         target: "http://api.mc.com",
      //         changeOrigin: true
      //     },
      //     "/foo": {
      //         target: ""
      //     }
      // },
      before: app => {},     // 第三方插件
  }
} 
vue.config.js是一个可选的配置文件,若项目根目录存在该文件,会被@vue/cli-service自动加载,也可使用package.json中的vue字段,但需严格遵照JSON格式书写[^1]。以下是vue2中配置vue.config.js的方法和常见配置项说明: ### 常见配置项及用途 - **publicPath**:设置部署应用时的基础路径,例如 `/` 或 `/my-app/` [^2]。 - **outputDir**:构建输出目录,默认是 `dist` [^2]。 - **assetsDir**:放置静态资源图片、字体、JS/CSS)的子目录 [^2]。 - **lintOnSave**:是否在保存时使用ESLint检查代码 [^2]。 - **devServer**:配置开发服务器,可设置端口、代理、HTTPS、自动打开浏览器等 [^2]。 - **configureWebpack / chainWebpack**:用于修改Webpack配置,如添加插件、loader等 [^2]。 - **productionSourceMap**:控制是否生成生产环境的source map文件 [^2]。 - **transpileDependencies**:设置需要通过Babel转译的依赖包 [^2]。 ### 配置示例 #### 配置src别名为@ ```javascript // vue.config.js const { resolve } = require('path'); module.exports = { chainWebpack: config => { const types = ['vue-modules', 'vue', 'normal-modules', 'normal']; config.resolve.alias.set('@', resolve('src')); } }; ``` 此代码通过 `chainWebpack` 配置项修改Webpack配置,将 `src` 目录别名为 `@`,方便在代码中引用 `src` 下的文件 [^3]。 #### 关闭生产环境的source map ```javascript // vue.config.js module.exports = { productionSourceMap: false }; ``` 该配置用于控制是否生成生产环境的源代码映射文件,关闭可减少打包后的文件体积 [^4]。 #### 去掉eslint检查 ```javascript // vue.config.js module.exports = { lintOnSave: false }; ``` `lintOnSave` 配置项可设置 `eslint-loader` 是否在保存时检查代码,将其设为 `false` 可去掉eslint检查 [^4]。 #### 配置开发环境的Source Map类型 ```javascript // vue.config.js configureWebpack: config => { if (process.env.NODE_ENV === 'production') { // 为生产环境修改配置... config.mode = 'production'; config.devtool = "source-map"; } else { // 为开发环境修改配置... config.mode = 'development'; } }; ``` `config.devtool` 是Webpack的选项,设置为 `"source-map"` 会生成独立的Source Map文件,用于将编译后的代码映射回原始源代码,在开发环境中开启有助于提高调试效率,但会增加构建时间和打包后文件的体积 [^4]。 #### 多页面配置 ```javascript // vue.config.js module.exports = { pages: { index: { // page 的入口 entry: "src/index/main.js", // 模板来源 template: "public/index.html", // 在 dist/index.html 的输出 filename: "index.html", // 当使用 title 选项时, // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title> title: "Index Page", // 在这个页面中包含的块,默认情况下会包含 // 提取出来的通用 chunk 和 vendor chunk。 chunks: ["chunk-vendors", "chunk-common", "index"], }, // 当使用只有入口的字符串格式时, // 模板会被推导为 `public/subpage.html` // 并且如果找不到的话,就回退到 `public/index.html`。 // 输出文件名会被推导为 `subpage.html`。 subpage: "src/subpage/main.js", }, }; ``` `pages` 配置项用于多页面应用,可指定每个页面的入口、模板、输出文件名等 [^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值