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 16 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
js中parseInt函数浅谈
Jul 31 Javascript
基于jquery实现瀑布流布局
Jun 28 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
利用纯js + transition动画实现移动端web轮播图详解
Sep 10 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
Nov 27 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
vue总线机制(bus)知识点详解
May 10 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 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
PHP常用代码
2006/11/23 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
在jQuery中处理XML数据的大致方法
2015/08/14 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
vue mixins组件复用的几种方式(小结)
2017/09/06 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
js实现图片区域可点击大小随意改变(适用移动端)代码实例
2019/09/11 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
python刷投票的脚本实现代码
2014/11/08 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
Python使用爬虫猜密码
2016/02/19 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
Python实现翻转数组功能示例
2018/01/12 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
对python中assert、isinstance的用法详解
2019/11/27 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
python 实现多维数组(array)排序
2020/02/28 Python
Python turtle库的画笔控制说明
2020/06/28 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
年会邀请函的格式及范文五篇
2019/11/02 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
Java Socket实现Redis客户端的详细说明
2021/05/26 Redis
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python