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 相关文章推荐
MooTools 页面滚动浮动层智能定位实现代码
Aug 23 Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 Javascript
web的各种前端打印方法之jquery打印插件jqprint实现网页打印
Jan 09 Javascript
鼠标放在图片上显示大图的JS代码
Mar 26 Javascript
网页中可关闭的漂浮窗口实现可自行调节
Aug 20 Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 Javascript
JavaScript类继承及实例化的方法
Jul 25 Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
layui结合form,table的全选、反选v1.0示例讲解
Aug 15 Javascript
分享5个好用的javascript文件上传插件
Sep 16 Javascript
详解Vue之事件处理
Jul 10 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/26 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
joomla数据库操作示例代码
2016/01/06 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
2018/07/13 Javascript
JSON Web Tokens的实现原理
2017/04/02 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
大学辅导员述职报告
2015/01/10 职场文书
音乐教师求职信范文
2015/03/20 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
springboot+VUE实现登录注册
2021/05/27 Vue.js
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
生命的关键成分来自太空?陨石说是的
2022/04/29 数码科技