From 3755693be0be520deaf92d566f7e5e00d71fdcf5 Mon Sep 17 00:00:00 2001
From: zhoudw <zhoudw@infobird.com>
Date: Mon, 10 Jan 2022 15:50:59 +0800
Subject: [PATCH] 打包

---
 build/build.js |   60 +++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/build/build.js b/build/build.js
index 8f2ad8a..5e2a888 100644
--- a/build/build.js
+++ b/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,32 +11,41 @@
 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 => {
-  if (err) throw err
-  webpack(webpackConfig, (err, stats) => {
-    spinner.stop()
+    //读取配置文件
+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
-    process.stdout.write(stats.toString({
-      colors: true,
-      modules: false,
-      children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
-      chunks: false,
-      chunkModules: false
-    }) + '\n\n')
-
-    if (stats.hasErrors()) {
-      console.log(chalk.red('  Build failed with errors.\n'))
-      process.exit(1)
-    }
-
-    console.log(chalk.cyan('  Build complete.\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'
-    ))
-  })
+    webpack(webpackConfig, (err, stats) => {
+        spinner.stop()
+        if (err) throw err
+        process.stdout.write(stats.toString({
+            colors: true,
+            modules: false,
+            children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
+            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' +
+            '  Opening index.html over file:// won\'t work.\n'
+        ))
+    })
 })

--
Gitblit v1.8.0