vue-cli脚手架config目录下index.js配置文件的方法


Posted in Javascript onMarch 13, 2018

此文章介绍vue-cli脚手架config目录下index.js配置文件

1、此配置文件是用来定义开发环境和生产环境中所需要的参数

2、关于注释

当涉及到较复杂的解释我将通过标识的方式(如(1))将解释写到单独的注释模块,请自行查看

3、上代码

// see http://vuejs-templates.github.io/webpack for documentation.
// path是node.js的路径模块,用来处理路径统一的问题
var path = require('path')

module.exports = {
 // 下面是build也就是生产编译环境下的一些配置
 build: {
  // 导入prod.env.js配置文件,只要用来指定当前环境,详细见(1)
  env: require('./prod.env'),
  // 下面是相对路径的拼接,假如当前跟目录是config,那么下面配置的index属性的属性值就是dist/index.html
  index: path.resolve(__dirname, '../dist/index.html'),
  // 下面定义的是静态资源的根目录 也就是dist目录
  assetsRoot: path.resolve(__dirname, '../dist'),
  // 下面定义的是静态资源根目录的子目录static,也就是dist目录下面的static
  assetsSubDirectory: 'static',
  // 下面定义的是静态资源的公开路径,也就是真正的引用路径
  assetsPublicPath: '/',
  // 下面定义是否生成生产环境的sourcmap,sourcmap是用来debug编译后文件的,通过映射到编译前文件来实现
  productionSourceMap: true,
  // Gzip off by default as many popular static hosts such as
  // Surge or Netlify already gzip all static assets for you.
  // Before setting to `true`, make sure to:
  // npm install --save-dev compression-webpack-plugin
  // 下面是是否在生产环境中压缩代码,如果要压缩必须安装compression-webpack-plugin
  productionGzip: false,
  // 下面定义要压缩哪些类型的文件
  productionGzipExtensions: ['js', 'css'],
  // Run the build command with an extra argument to
  // View the bundle analyzer report after build finishes:
  // `npm run build --report`
  // Set to `true` or `false` to always turn it on or off
  // 下面是用来开启编译完成后的报告,可以通过设置值为true和false来开启或关闭
  // 下面的process.env.npm_config_report表示定义的一个npm_config_report环境变量,可以自行设置
  bundleAnalyzerReport: process.env.npm_config_report
 },
 dev: {
  // 引入当前目录下的dev.env.js,用来指明开发环境,详见(2)
  env: require('./dev.env'),
  // 下面是dev-server的端口号,可以自行更改
  port: 8080,
  // 下面表示是否自定代开浏览器
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  // 下面是代理表,作用是用来,建一个虚拟api服务器用来代理本机的请求,只能用于开发模式
  // 详见(3)
  proxyTable: {},
  // CSS Sourcemaps off by default because relative paths are "buggy"
  // with this option, according to the CSS-Loader README
  // (https://github.com/webpack/css-loader#sourcemaps)
  // In our experience, they generally work as expected,
  // just be aware of this issue when enabling this option.
  // 是否生成css,map文件,上面这段英文就是说使用这个cssmap可能存在问题,但是按照经验,问题不大,可以使用
  // 给人觉得没必要用这个,css出了问题,直接控制台不就完事了
  cssSourceMap: false
 }
}

注释

(1)下面是prod.env.js的配置内容

module.exports = {
  // 作用很明显,就是导出一个对象,NODE_ENV是一个环境变量,指定production环境
  NODE_ENV: '"production"'
 }

(2)下面是dev.env.js的配置内容

// 首先引入的是webpack的merge插件,该插件是用来合并对象,也就是配置文件用的,相同的选项会被覆盖,至于这里为什么多次一举,可能另有他图吧
 var merge = require('webpack-merge')
 // 导入prod.env.js配置文件
 var prodEnv = require('./prod.env')
 // 将两个配置对象合并,最终结果是 NODE_ENV: '"development"'
 module.exports = merge(prodEnv, {
  NODE_ENV: '"development"'
 })

(3)下面是proxyTable的一般用法

vue-cli使用这个功能是借助http-proxy-middleware插件,一般解决跨域请求api

proxyTable: {
  '/list': {
   target: 'http://api.xxxxxxxx.com', -> 目标url地址
   changeOrigin: true, -> 指示是否跨域
   pathRewrite: {
   '^/list': '/list' -> 可以使用 /list 等价于 api.xxxxxxxx.com/list
   }
  }
 }

以上这篇vue-cli脚手架config目录下index.js配置文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 批量上传图片实现代码
Jan 28 Javascript
利用jQuery接受和处理xml数据的代码(.net)
Mar 28 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
jQuery中常用的遍历函数用法实例总结
Sep 01 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
利用浮层使select不可选的实现方法
Dec 03 Javascript
JavaScript中Require调用js的实例分享
Oct 27 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 Javascript
微信小程序开发背景图显示功能
Aug 08 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
Sep 14 Javascript
vue2.0 watch里面的 deep和immediate用法说明
Oct 30 Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 #Javascript
vue-cli脚手架引入图片的几种方法总结
Mar 13 #Javascript
解决vue-cli创建项目的loader问题
Mar 13 #Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
Mar 13 #Javascript
基于vue.js实现的分页
Mar 13 #Javascript
微信小程序中实现手指缩放图片的示例代码
Mar 13 #Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 #Javascript
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
windows xp下安装pear
2006/12/02 PHP
PHP开发中常用的三个表单验证函数使用小结
2010/03/03 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
js获取域名的方法
2015/01/27 Javascript
jquery判断至少有一个checkbox被选中的方法
2015/06/05 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
深入解析Python中的lambda表达式的用法
2015/08/28 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
python3正则模块re的使用方法详解
2020/02/11 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
美国羊皮公司:Overland
2018/01/15 全球购物
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
EJB3.1都有哪些改进
2012/11/17 面试题
政风行风评议心得体会
2014/10/21 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
python标准库ElementTree处理xml
2022/05/20 Python
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android