vue.config.js常用配置详解


Posted in Javascript onNovember 14, 2019

使用vue-cli3.0搭建项目比之前更简洁,没有了build和config文件夹。

vue-cli3的一些服务配置都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置需要在根目录新建一个vue.config.js文件进行配置

module.exports = {
 // 选项...
}

基本路径

baseUrl从 Vue CLI 3.3 起已弃用使用publicPath来替代。

在开发环境下,如果想把开发服务器架设在根路径,可以使用一个条件式的值

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

构建输出目录(打包位置)

outputDir

当运行 vue-cli-service build 时生成的生产环境构建文件的目录

module.exports = {
 outputDir: 'dist',
}

静态资源目录

assetsDir

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

module.exports = {
 assetsDir: 'assets',
}

eslint代码检测

是否开启eslint保存检测,有效值:ture | false | 'error'

设置为 true 时,eslint-loader 会将 lint 错误输出为编译警告。默认情况下,警告仅仅会被输出到命令行,且不会使得编译失败

希望让 lint 错误在开发时直接显示在浏览器中,可以使用 lintOnSave: 'error'。这会强制 eslint-loader 将 lint 错误输出为编译错误

webpack-dev-server 相关配置

devServer

devServer: {
    open: true,//设置自动打开
    port: 1880,//设置端口
    proxy: {
      //设置代理


'/axios': {




target: 'http://101.15.22.98',




changeOrigin: true,




secure: false, //如果是http接口,需要配置该参数




pathRewrite: {





'^/axios': ''





}




}
      }
    }
  }
module.exports = {
  // 部署应用时的基本 URL
  publicPath: process.env.NODE_ENV === 'production' ? '192.168.60.110:8080' : '192.168.60.110:8080',

  // build时构建文件的目录 构建时传入 --no-clean 可关闭该行为
  outputDir: 'dist',

  // build时放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  assetsDir: '',

  // 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。
  indexPath: 'index.html',

  // 默认在生成的静态资源文件名中包含hash以控制缓存
  filenameHashing: true,

  // 构建多页面应用,页面的配置
  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'
  },

  // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码 (在生产构建时禁用 eslint-loader)
  lintOnSave: process.env.NODE_ENV !== 'production',

  // 是否使用包含运行时编译器的 Vue 构建版本
  runtimeCompiler: false,

  // Babel 显式转译列表
  transpileDependencies: [],

  // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建
  productionSourceMap: true,

  // 设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性(注:仅影响构建时注入的标签)
  crossorigin: '',

  // 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)
  integrity: false,

  // 如果这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中
  // 如果你需要基于环境有条件地配置行为,或者想要直接修改配置,那就换成一个函数 (该函数会在环境变量被设置之后懒执行)。该方法的第一个参数会收到已经解析好的配置。在函数内,你可以直接修改配置,或者返回一个将会被合并的对象
  configureWebpack: {},

  // 对内部的 webpack 配置(比如修改、增加Loader选项)(链式操作)
  chainWebpack: () =>{

  },

  // css的处理
  css: {
    // 当为true时,css文件名可省略 module 默认为 false
    modules: true,
    // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中,当作为一个库构建时,你也可以将其设置为 false 免得用户自己导入 CSS
    // 默认生产环境下是 true,开发环境下是 false
    extract: false,
    // 是否为 CSS 开启 source map。设置为 true 之后可能会影响构建的性能
    sourceMap: false,
    //向 CSS 相关的 loader 传递选项(支持 css-loader postcss-loader sass-loader less-loader stylus-loader)
    loaderOptions: {
      css: {},
      less: {}
    }
  },

  // 所有 webpack-dev-server 的选项都支持
  devServer: {},

  // 是否为 Babel 或 TypeScript 使用 thread-loader
  parallel: require('os').cpus().length > 1,

  // 向 PWA 插件传递选项
  pwa: {},

  // 可以用来传递任何第三方插件选项
  pluginOptions: {}
}

参考:https://3water.com/article/146152.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
找到一点可怜的关于dojo资料,谢谢作者!
Dec 06 Javascript
javascript String 的扩展方法集合
Jun 01 Javascript
JS input 数字验证代码
Jul 30 Javascript
jQuery之折叠面板的深入解析
Jun 19 Javascript
jquery重复提交请求的原因浅析
May 23 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
Apr 03 Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
基于JavaScript实现瀑布流布局
Aug 15 Javascript
JavaScript常见继承模式实例小结
Jan 11 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
Nov 14 #Javascript
vue 返回上一页,页面样式错乱的解决
Nov 14 #Javascript
Node绑定全局TraceID的实现方法
Nov 14 #Javascript
vue-router结合vuex实现用户权限控制功能
Nov 14 #Javascript
vue router 传参获取不到的解决方式
Nov 13 #Javascript
Vue解析带html标签的字符串为dom的实例
Nov 13 #Javascript
vue props对象validator自定义函数实例
Nov 13 #Javascript
You might like
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
在python中安装basemap的教程
2018/09/20 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
python scatter函数用法实例详解
2020/02/11 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
哈弗商学院毕业生求职信
2014/02/26 职场文书
小学清明节活动方案
2014/03/08 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
销售岗位职责范本
2014/06/12 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2014年女职工工作总结
2014/11/27 职场文书
谢师宴邀请函
2015/02/02 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
PHP获取学生成绩的方法
2021/11/17 PHP