该随笔收藏自:

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

  1. 这个配置文件是命令npm run build 的入口配置文件,主要用于生产环境
  2. 由于这是一个系统的配置文件,将涉及很多的模块和插件,所以这部分内容我将分多个文章讲解,请关注我博客的其他文章
  3. 关于注释
    • 当涉及到较复杂的解释我将通过标识的方式(如(1))将解释写到单独的注释模块,请自行查看
  4. 上代码
  1. // 写在前面
  2. // 此文件是在node环境中运行的,使用webpack的nodejsAPI实现自定义构建和开发流程的
  3. // ---------------------
  4. // npm和node版本检查,请看我的check-versions配置文件解释文章
  5. require('./check-versions')()
  6.  
  7. // 设置环境变量为production
  8. process.env.NODE_ENV = 'production'
  9.  
  10. // ora是一个命令行转圈圈动画插件,好看用的
  11. var ora = require('ora')
  12. // rimraf插件是用来执行UNIX命令rm和-rf的用来删除文件夹和文件,清空旧的文件
  13. var rm = require('rimraf')
  14. // node.js路径模块
  15. var path = require('path')
  16. // chalk插件,用来在命令行中输入不同颜色的文字
  17. var chalk = require('chalk')
  18. // 引入webpack模块使用内置插件和webpack方法
  19. var webpack = require('webpack')
  20. // 引入config下的index.js配置文件,此配置文件我之前介绍了请自行查阅,主要配置的是一些通用的选项
  21. var config = require('../config')
  22. // 下面是生产模式的webpack配置文件,请看我的webpack.prod.conf解释文章
  23. var webpackConfig = require('./webpack.prod.conf')
  24.  
  25. // 开启转圈圈动画
  26. var spinner = ora('building for production...')
  27. spinner.start()
  28.  
  29. // 调用rm方法,第一个参数的结果就是 dist/static,表示删除这个路径下面的所有文件
  30. rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
  31. // 如果删除的过程中出现错误,就抛出这个错误,同时程序终止
  32. if (err) throw err
  33. // 没有错误,就执行webpack编译
  34. webpack(webpackConfig, function (err, stats) {
  35. // 这个回调函数是webpack编译过程中执行
  36. spinner.stop() // 停止转圈圈动画
  37. if (err) throw err // 如果有错误就抛出错误
  38. // 没有错误就执行下面的代码,process.stdout.write和console.log类似,输出对象
  39. process.stdout.write(stats.toString({
  40. // stats对象中保存着编译过程中的各种消息
  41. colors: true, // 增加控制台颜色开关
  42. modules: false, // 不增加内置模块信息
  43. children: false, // 不增加子级信息
  44. chunks: false, // 允许较少的输出
  45. chunkModules: false // 不将内置模块的信息加到包信息
  46. }) + '\n\n')
  47. // 以上就是在编译过程中,持续打印消息
  48. // 下面是编译成功的消息
  49. console.log(chalk.cyan(' Build complete.\n'))
  50. console.log(chalk.yellow(
  51. ' Tip: built files are meant to be served over an HTTP server.\n' +
  52. ' Opening index.html over file:// won\'t work.\n'
  53. ))
  54. })
  55. })
  56. // end
  57. // 注: 如果你想自己编写一个高质量的脚手架工具,建议你:
  58. // 去补习nodejs,然后补习 es6,然后再来看webpack官方文档,然后自己独立编写一个和vue-cli类似的脚手架,如果上面的东西看不懂,更要这样做
  59. // vue-cli还有一部分内容是关于代码测试的,可以说这块内容的复杂度不亚于webpack,这些内容对nodejs要求比较熟悉,说白了就是基础弱的很难入门,但是测试这块内容也是非常有价值的,可以借助无界面的浏览器解析引擎,通过一句命令就可以把你的代码在不同的平台上运行,还能指出问题所在,所以,我会渐渐的转战nodejs去了,后续的文章将很多是关于nodejs的文章,如果感兴趣的可以关注我的文章,一起学习探讨

build.js

vue-cli脚手架build目录中的build.js配置文件的更多相关文章

  1. vue-cli脚手架build目录中的dev-server.js配置文件

    本文系统讲解vue-cli脚手架build目录中的dev-server.js配置文件 这个配置文件是命令npm run dev 和 npm run start 的入口配置文件,主要用于开发环境 由于这 ...

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

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

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

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

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

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

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

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

  6. vue-cli脚手架build目录中check-versions.js的配置

    转载自:https://www.cnblogs.com/ye-hcj/p/7074363.html 本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检 ...

  7. vue-cli脚手架build目录中的karma.conf.js配置文件

    本文系统讲解vue-cli脚手架build目录中的karma.conf.js配置文件 这个配置文件是命令 npm run unit 的入口配置文件,主要用于单元测试 这条命令的内容如下 "c ...

  8. 13. Vue CLI脚手架

    一. Vue CLI 介绍 1. 什么是Vue CLI? Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.Vue CLI 致力于将 Vue 生态中的工具基础标准化.它确保了各种构建工 ...

  9. vue-cli中的check-versions.js配置文件包括semver,chalk,shell插件的解释

    本文介绍vue-cli脚手架build目录中check-versions.js的配置 本文件是用来检测node和npm版本的 直接上代码加注释 // 下面的插件是chalk插件,他的作用是在控制台中输 ...

随机推荐

  1. vuex-Module

    Vuex 允许将 store 分割成模块(module). 每个模块拥有自己的 state.mutation.action.getter.甚至是嵌套子模块 const moduleA = { stat ...

  2. C语言一维数组定义及引用时括号[]内容

    一维数组定义:数组名[常量表达式] 一维数组引用:数组名[整型常量或整型表达式] *说明:常量表达式 > 整型表达式 > 整型常量 #define N 100 宏定义没有具体的数据类型, ...

  3. centos 进程查看

    查看pid 所属文件/项目 ps -aux |grep -v grep|grep 51073

  4. 解决ios兼容性问题

    其实也不算兼容性问题 在做一个手指切换动画时,在安卓显示正常但是在iOS上切换图片时整个页面会向上或向下窜,这样非常印象美观,这种现象是由于ios自带的下拉刷新功能能影响的: 解决方法: 添加阻止事件 ...

  5. winform 下载

    方法一: WebClient webClint = new WebClient(); webClint.DownloadFile(下载文件的路径,下载到本地的地址); 方法二:异步 WebClient ...

  6. Java学习笔记34(sql基础 :增删改查1)

    create database qy97;/*创建数据库*/ use qy97; /*使用数据库 use 数据库名*/ show tables; /*查看所有的表*/ select database( ...

  7. CentOS上升级gcc编译器使支持C++11

    首先向博主致敬,好的东西拿来共享了,用一下不错. https://blog.csdn.net/clirus/article/details/62424517 0. 目标  最近在学习c++11,我本机 ...

  8. FreeSWITCH与FreeSWITCH对接

    (主机A ---> 主机B)192.168.100.A主机:修改/usr/local/freeswitch/conf/dialplan/default.xml 10         <ex ...

  9. jQuery-2.DOM---创建节点及节点属性

    DOM创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 试想下这样的情况:如 ...

  10. SQLI DUMB SERIES-7

    (1)查看PHP源代码 可以看见输入的id被一对单引号和两对圆括号包围 (2)根据提示:Dump into Outfile可知,此次攻击需要导出文件 (3)在第一关获取 @@datadir 读取数据库 ...