Vue-cli全局配置整理

Vue-cli配置简单明了,内部还自带了webpack,默认已经有development  test production三种模块,支持自定义环境变量来区分打包产物,所以将vue-cli常用配置整理出来,以备不时只需. 

  //baseUrl:'./',//cli3.3开始已启用 请使用publicPath
  //发布路径  会覆盖vue-cli中的 BASE_URL
  publicPath: process.env.VUE_APP_MODE === 'prod'
      ? '/prod-h5/'
      : process.env.VUE_APP_MODE === 'other'?'/other-h5/':'./',
  outputDir:'dist',//默认打包路径
  assetsDir:'static',//生成的静态资源目录,
  indexPath:'index.html',//生成Index.html的路径
  filenameHashing:true,//默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,
                        // 只有vue-cli生成index.html才生效,使用其他非自动生成的将此值设置false

  //在 multi-page 模式下构建应用。每个“page”应该有一个对应的 JavaScript 入口文件。其值应该是一个对象,对象的 key 是入口的名字,value 是:
 //一个指定了 entry, template, filename, title 和 chunks 的对象 (除了 entry 之外都是可选的);
 //或一个指定其 entry 的字符串
  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'
  },
  //保存时lint检查  需要安装  @vue/cli-plugin-eslint
  // true/warning   编译警告 不会使编译失败
  //default  强制输出为编译错误,会导出编译失败
  //error 同 default
  //你也可以通过设置让浏览器 overlay 同时显示警告和错误
  //devServer: {
  //     overlay: {
  //       warnings: true,
  //       errors: true
  //     }
  //   }
  lintOnSave:'default',//process.env.NODE_ENV !== 'production'?'default':false
  runtimeCompiler:false,//是否使用包含运行时编译器的 Vue 构建版本。设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右
  transpileDependencies:[],// boolean [] reg  默认情况下 babel-loader 会忽略所有 node_modules 中的文件。你可以启用本选项,以避免构建后的代码中出现未转译的第三方依赖
  productionSourceMap:false,//是否需要生产环境生成sourcemap
  crossorigin:undefined,//设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性
  integrity:false,//在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)。如果你构建后的文件是部署在 CDN 上的,启用该选项可以提供额外的安全性
  configureWebpack:{},//webpack配置  如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中。配置参考:  https://cli.vuejs.org/zh/guide/webpack.html#%E7%AE%80%E5%8D%95%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F
  chainWebpack:()=>{},//是一个函数,会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。配置参考:https://cli.vuejs.org/zh/guide/webpack.html#%E9%93%BE%E5%BC%8F%E6%93%8D%E4%BD%9C-%E9%AB%98%E7%BA%A7
  css:{
    //modules:从 v4 起已弃用,请使用css.requireModuleExtension。 在 v3 中,这个选项含义与 css.requireModuleExtension 相反
    requireModuleExtension:true,//默认情况下,只有 *.module.[ext] 结尾的文件才会被视作 CSS Modules 模块。设置为 false 后你就可以去掉文件名中的 .module 并将所有的 *.(css|scss|sass|less|styl(us)?) 文件视为 CSS Modules 模块
                                //配置参考  https://cli.vuejs.org/zh/guide/css.html#css-modules
    extract:false,//Default: 生产环境下是 true,开发环境下是 false  是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。

    sourceMap:false,//开启css sourcemap
    loaderOptions:{//向 CSS 相关的 loader 传递选项
      css: {
        // 这里的选项会传递给 css-loader
      },
      postcss: {
        // 这里的选项会传递给 postcss-loader
      }
    },

  },
  devServer:{
    //如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器  配置参考:https://github.com/chimurai/http-proxy-middleware#proxycontext-config
    //proxy: 'http://localhost:4000',//
    proxy:{
      '/api': {
        target: '<url>',
        ws: true,
        changeOrigin: true
      },
      '/foo': {
        target: '<other_url>'
      }
    }
  },
  parallel:true,//是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。
  pwa:{},//向 PWA 插件传递选项  参考配置:https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  pluginOptions:{//这是一个不进行任何 schema 验证的对象,因此它可以用来传递任何第三方插件选项
    foo:{

    }
  },
  browserslist:{
    //你会发现有 package.json 文件里的 browserslist 字段 (或一个单独的 .browserslistrc 文件),
    // 指定了项目的目标浏览器的范围。这个值会被 @babel/preset-env 和 Autoprefixer 用来确定需要转译的 JavaScript 特性
    // 和需要添加的 CSS 浏览器前缀
  }
  //Babel   可以通过 babel.config.js 进行配置
  //ESLint 可以通过 .eslintrc 或 package.json 中的 eslintConfig 字段来配置   https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint
  //其他配置参考官网  https://cli.vuejs.org/zh/config/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值