build 文件夾中的 build.js


 

 1 // bulid.js是webpack的打包文件,通過配置package.json中的script來執行腳本。命令號npm run build即運行node build/build.js
 2 'use strict'
 3 require('./check-versions')() // 檢查node+npm的版本,引用./check-versions.js文件
 4 
 5 
 6 //process.env是一個包含用戶環境信息的對象 NODE_ENV是用戶自定義的變量,用來判斷是開發環境還是生產環境
 7 process.env.NODE_ENV = 'production'
 8 
 9 const ora = require('ora') //ora:https://www.npmjs.com/package/ora  ora包用於顯示加載中的效果,類似於前端頁面的loading效果
10 const rm = require('rimraf') //rimraf模塊 以包的形式包裝rm -rf命令,用來刪除文件和文件夾的,不管文件是否為空
11 const path = require('path') //導入node的path模塊
12 const chalk = require('chalk') //地址:https://www.npmjs.com/package/chalk 導入chalk模塊 用來改變文字顏色
13 const webpack = require('webpack') //引入webpack模塊
14 const config = require('../config')
15 const webpackConfig = require('./webpack.prod.conf')
16 
17 const spinner = ora('building for production...') // 實現loading的模塊
18 spinner.start() //開始動畫
19 
20 //rm方法刪除static文件夾
21 //path.join是將路徑片段以'\'連接成新的路徑,任何一個路徑片段有錯誤就會報錯
22 rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
23   if (err) throw err
24 
25   //構建webpackc
26   webpack(webpackConfig, (err, stats) => {
27     spinner.stop() //停止動畫
28     if (err) throw err
29 
30     //process.stdout.write是標准輸出,相當於console.log
31     process.stdout.write(stats.toString({
32       colors: true, //增加控制卡顏色開關,即顯示不同顏色的字體
33       modules: false, //是否增加內置模塊信息
34       children: false, //如果您使用的是 ts-loader,將其設置為true將使TypeScript錯誤在構建過程中出現.
35       chunks: false, //允許較少的輸出
36       chunkModules: false //不將內置模塊的信息加到包信息
37     }) + '\n\n')
38 
39     if (stats.hasErrors()) {
40       console.log(chalk.red('  Build failed with errors.\n'))
41 
42       //執行失敗
43       process.exit(1)
44     }
45 
46     // 編譯退出
47     console.log(chalk.cyan('  Build complete.\n'))
48     console.log(chalk.yellow(
49       '  Tip: built files are meant to be served over an HTTP server.\n' +
50       '  Opening index.html over file:// won\'t work.\n'
51     ))
52   })
53 })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM