build文件下的build.js解释

//bulid.js是webpack的打包文件,通过配置package.json中的script来执行脚本。命令号npm run build即运行node build/build.js
'use strict'
//检查node+npm的版本,引用./check-versions.js文件
require('./check-versions')()

//process.env是一个包含用户环境信息的对象 NODE_ENV是用户自定义的变量,用来判断是开发环境还是生产环境
process.env.NODE_ENV = 'production'

//导入ora模块 实现loading效果
const ora = require('ora')
//导入rimraf模块 以包的形式包装rm -rf命令,用来删除文件和文件夹的,不管文件是否为空
const rm = require('rimraf')
//导入node的path模块
const path = require('path')
//导入chalk模块 用来改变文字颜色
const chalk = require('chalk')
//导入webpack模块
const webpack = require('webpack')
//导入config/index.js
const config = require('../config')
//导入webpack.prod.conf
const webpackConfig = require('./webpack.prod.conf')
//实现loading的模块
const spinner = ora('building for production...')
//开始动画
spinner.start()

//rm方法删除static文件夹
//path.join是将路径片段以'\'连接成新的路径,任何一个路径片段有错误就会报错
rm(path.join(config.build.assetsRoot,config.build.assetsSubDirectory),err => {
   if(err) throw err
   //构建webpack
   webpack(webpackConfig,(err,stats) => {
       //停止动画
       spinner.stop()
       if(err) throw err
       //process.stdout.write是标准输出,相当于console.log
       process.stdout.write(stats.toString({
           //增加控制卡颜色开关,即显示不同颜色的字体
           colors:true,
           //是否增加内置模块信息
           modules:false,
           children:false,
           //允许较少的输出
           chunks:false,
           //不将内置模块的信息加到包信息
           chunkModules:false

       }) + '\n\n')

       if(stats.hasErrors()){
            console.log(chalk.red(' Build complete.\n'))
            //执行失败
            process.exit(1)
       }
       //编译退出
       console.log(chalk.cyan(' Build failed with errors.\n'))
       console.log(chalk.yellow(
           ' Tip:built files are meant to be served over an HTTP server.\n' +
           ' Opening index.html over file:// won\'t work.\n'
       ))
   })
})


 

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值