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 相关文章推荐
javascript编程起步(第五课)
Jan 10 Javascript
JavaScript获取当前网页最后修改时间的方法
Apr 03 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
Nov 27 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
vue双向绑定简要分析
Mar 23 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 Javascript
利用Javascript获取选择文本所在的句子详解
Dec 03 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
最简单的JS实现json转csv的方法
Jan 10 Javascript
JavaScript使用表单元素验证表单的示例代码
Aug 20 Javascript
vue封装数字翻牌器
Apr 20 Vue.js
用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
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
PHP 超级全局变量相关总结
2020/06/30 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
一段实时更新的时间代码
2006/07/07 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
javascript preload&lazy load
2010/05/13 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
vue axios用法教程详解
2017/07/23 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
vue-cli3 从搭建到优化的详细步骤
2019/01/20 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
jquery传参及获取方式(两种方式)
2020/02/13 jQuery
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Django中反向生成models.py的实例讲解
2018/05/30 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
幼儿园英语教学反思
2014/01/30 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
小学教学工作总结2015
2015/05/13 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技