1. 'use strict'
  2. //引入node path 中间件 可以获取到 path 路径的一些信息
  3. const path = require('path')
  4. //引入utils工具模块 utils主要用来处理css-loader和vue-style-loader的
  5. const utils = require('./utils')
  6. //引入config下面的index文件 主要是配置一些开发环境和生产环境的配置
  7. const config = require('../config')
  8. //用来解决各种css 文件 sass less stulys 等
  9. const vueLoaderConfig = require('./vue-loader.conf')
  10. // 定义了一个路径函数 返回当前的目录的平行目录下的dir因为有'..'也就是获取绝对路径,方便对import时引入地址的方便填写
  11. function resolve(dir) {
  12. return path.join(__dirname, '..', dir)
  13. }
  14. //eslint 的检测规则
  15. const createLintingRule = () => ({
  16. //对js和vue 文件进行eslint 检查
  17. test: /\.(js|vue)$/,
  18. //使用eslint-loader
  19. loader: 'eslint-loader',
  20. //enforce执行的意思 有两个值 pre post
  21. //pre是在其他规则执行之前执行 post是在其他规则执行之后执行
  22. enforce: 'pre',
  23. //进行检测的文件目录包括哪些 调用了路径函数,
  24. include: [resolve('src'), resolve('test')],
  25. options: {
  26. //使用第三方的插件进行eslint 检测
  27. formatter: require('eslint-friendly-formatter'),
  28. //是否输出eslint报错信息
  29. emitWarning: !config.dev.showEslintErrorsInOverlay
  30. }
  31. })
  32. //webpack的配置,可以理解成是开发环境和正式环境的一些公共配置
  33. module.exports = {
  34. //webpack 解析时根目录地址如果此文件在跟目录这句话就不用写
  35. context: path.resolve(__dirname, '../'),
  36. //项目的入口文件
  37. entry: {
  38. app: './src/main.js'
  39. },
  40. //项目出口文件配置
  41. output: {
  42. //项目buid的出口文件的目录地址,这里指的是(../dist文件目录) 引入的是config.build 下面的配置
  43. path: config.build.assetsRoot,
  44. //文件的名字
  45. filename: '[name].js',
  46. //输出解析文件的目录,url 相对于 HTML 页面(生成的html文件中,css和js等静态文件的url前缀)
  47. publicPath: process.env.NODE_ENV === 'production' ?
  48. config.build.assetsPublicPath : config.dev.assetsPublicPath
  49. },
  50. resolve: {
  51. //指定哪些文件在引用时可以省略后缀名
  52. extensions: ['.js', '.vue', '.json'],
  53. //别名,在引用文件时 使用别名代理真实目录 后面再在目录时以别名代替
  54. alias: {
  55. '@': resolve('src'),
  56. 'common': resolve('src/common'),
  57. 'components': resolve('src/components')
  58. }
  59. },
  60. module: {
  61. //转换解析规则
  62. //1.test是用来解析所有此后缀名的文件,
  63. //2.loader我们用什么npm什么形式的loader去解析
  64. //3.include是代表我们解析的文件只包含那些东西
  65. //4.options解析文件参数设置 具体看下面的解释
  66. rules: [
  67. ...(config.dev.useEslint ? [createLintingRule()] : []),
  68. {
  69. test: /\.vue$/,
  70. loader: 'vue-loader',
  71. //对vue的css进行解析
  72. options: vueLoaderConfig
  73. },
  74. {
  75. //对js文件使用babel-loader进行解析 主要是解析es6
  76. test: /\.js$/,
  77. loader: 'babel-loader',
  78. include: [resolve('src'), resolve('test')]
  79. },
  80. {
  81. //对图片使用url-loader解析 这个插件的作用是将一个足够小的文件生成一个64位的DataURL
  82. //当limit小于10000进行将图片生成base64
  83. //name 指的是引入的utils里面的一个方法 将name ,7位哈希 .ext 代表后缀名
  84. //传入方法 返回结果是 /static/img/[name].[hash:7].[ext]
  85. test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
  86. loader: 'url-loader',
  87. options: {
  88. limit: 10000,
  89. name: utils.assetsPath('img/[name].[hash:7].[ext]')
  90. }
  91. },
  92. {
  93. //对一些音频文件进行解析
  94. test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
  95. loader: 'url-loader',
  96. options: {
  97. limit: 10000,
  98. name: utils.assetsPath('media/[name].[hash:7].[ext]')
  99. }
  100. },
  101. {
  102. //对字体文件进行解析
  103. test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
  104. loader: 'url-loader',
  105. options: {
  106. limit: 10000,
  107. name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
  108. }
  109. }
  110. ]
  111. },
  112. node: {
  113. // 是否 polyfill 或 mock
  114. // prevent webpack from injecting useless setImmediate polyfill because Vue
  115. // 源包含它(虽然仅在本地使用)
  116. setImmediate: false,
  117. // 预防webpack从注入模拟节点到node原生模块
  118. // that does not make sense for the client 这对客户端没有影响
  119. dgram: 'empty',
  120. fs: 'empty',
  121. net: 'empty',
  122. tls: 'empty',
  123. child_process: 'empty'
  124. }
  125. }

  

vue --- 脚手架初始化项目中配置文件webpack.base.conf.js代码含义的更多相关文章

  1. vue-cli 2.x脚手架build目录中的webpack.base.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.base.conf.js配置文件,适用于vue-cli 2.x版本 此配置文件是vue开发环境的wepack相关配置文件,主要用来处 ...

  2. vue-cli脚手架build目录中的webpack.base.conf.js配置文件

    转载自:http://www.cnblogs.com/ye-hcj/p/7082620.html webpack.base.conf.js配置文件// 引入nodejs路径模块 var path = ...

  3. vue-cli脚手架build目录中的webpack.dev.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.dev.conf.js配置文件 此配置文件是vue开发环境的wepack相关配置文件 关于注释 当涉及到较复杂的解释我将通过标识的方 ...

  4. vue-cli脚手架build目录中的webpack.prod.conf.js配置文件

    // 下面是引入nodejs的路径模块 var path = require('path') // 下面是utils工具配置文件,主要用来处理css类文件的loader var utils = req ...

  5. vue-cli脚手架npm相关文件解读(1)webpack.base.conf.js

    系列文章传送门: 1.build/webpack.base.conf.js 2.build/webpack.prod.conf.js 3.build/webpack.dev.conf.js 4.bui ...

  6. vue-cli脚手架之webpack.base.conf.js

    webpack相关的重要配置文件将在这一节给出.webpack水很深啊^o^,在此先弄清楚原配文件内容的含义,后续可以自己根据实际情况配置. webpack.base.conf.js:配置vue开发环 ...

  7. vue-cli下面的config/index.js注解 webpack.base.conf.js注解

    config/indexjs详解上代码: 'use strict' // Template version: 1.3.1 // see http://vuejs-templates.github.io ...

  8. 手撕vue-cli配置——webpack.base.conf.js篇

    在开始写webpack.base.conf.js(简称base)之前,我们先来看一下vue-loader.conf.js这个文件,毕竟在base中我们还会用到: 'use strict' //引入前一 ...

  9. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

随机推荐

  1. man 7 glob

    GLOB(7) Linux Programmer's Manual GLOB(7) NAME glob - 形成路径名称 描述 (DESCRIPTION) 很久以前 在 UNIX V6 版 中 有一个 ...

  2. 紫书 习题8-18 UVa 11536 (扫描法)

    这道题貌似可以用滑动窗口或者单调栈做, 但是我都没有用到. 这道题要求连续子序列中和乘上最小值最大, 那么我们就可以求出每一个元素, 以它为最小值的的最大区间的值, 然后取max就ok了.那么怎么求呢 ...

  3. nyoj33 蛇形填数

    蛇形填数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 在n*n方陈里填入1,2,...,n*n,要求填成蛇形.比如n=4时方陈为: 10 11 12 1 9 16 ...

  4. hdu 4841 圆桌问题(用vector模拟约瑟夫环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4841 圆桌问题 Time Limit: 3000/1000 MS (Java/Others)    M ...

  5. 第8章5节《MonkeyRunner源代码剖析》MonkeyRunner启动执行过程-执行測试脚本

    MonkeyRunner在准备好AndroidDebugBridge和DeviceMonitor等服务之后,就基本上是攻克了和目标设备通信的问题了,那往下须要做的就是把測试脚本执行起来了. 178 p ...

  6. 拥抱PBO(基于项目的组织)聚焦核心价值创造

    近年来.PBO(Project-Based Organizations)作为一种新兴的整合各类专业智力资源和专业知识的组织结构,受到越来越多的关注,第五版PMBOK出现的新词汇.三种组织(职能型.矩阵 ...

  7. Light OJ 1080 - Binary Simulation

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1080 1080 - Binary Simulation PDF (Englis ...

  8. 自己封装js组件 - 初级

    2天前抱着试试看的态度注册了此神博,心血来潮呕心沥血写了一篇关于vue 自定义组件的小文章 尼玛果然一个评论的没有!果然毫无人气!(当然了我这文章内容有限和大神们的比起来简直是粗制滥造...)索性我就 ...

  9. ORM中基于对象查询与基于queryset查询

    感谢老男孩~  一步一步走下去 前面是视图函数 后面是表结构models.py from django.shortcuts import render, HttpResponse from djang ...

  10. SSD-2(代码部分介绍)

    single shot multibox detectior tensorflow 代码 一.SSD重要参数设置 在ssd_vgg_300.py文件中初始化重要的网络参数,主要有用于生成默认框的特征层 ...