zhoudw
2022-01-10 3755693be0be520deaf92d566f7e5e00d71fdcf5
build/build.js
@@ -2,6 +2,7 @@
require('./check-versions')()
process.env.NODE_ENV = 'production'
process.env.NODE_ENV_SELF = 'production'
const ora = require('ora')
const rm = require('rimraf')
@@ -10,11 +11,20 @@
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const configFilePath = './static/config.js'
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
    //读取配置文件
const CONFIG_ENV = require('../config/prod.env')
const fs = require('fs')
    //组装配置文件内容
let CONFIG_ENV_STRING = '';
for (let i in CONFIG_ENV) {
    CONFIG_ENV_STRING += i + ':' + CONFIG_ENV[i] + ','
}
const BUILD_DEV = `let config={${CONFIG_ENV_STRING}};module.exports = config;`
fs.writeFileSync(configFilePath, BUILD_DEV)
rm(path.join(config.build_dev.assetsRoot, config.build_dev.assetsSubDirectory), err => {
  if (err) throw err
  webpack(webpackConfig, (err, stats) => {
    spinner.stop()
@@ -26,12 +36,12 @@
      chunks: false,
      chunkModules: false
    }) + '\n\n')
    if (stats.hasErrors()) {
      console.log(chalk.red('  Build failed with errors.\n'))
      process.exit(1)
    }
        //删除配置文件
        fs.unlinkSync(configFilePath);
    console.log(chalk.cyan('  Build complete.\n'))
    console.log(chalk.yellow(
      '  Tip: built files are meant to be served over an HTTP server.\n' +