| | |
| | | require('./check-versions')() |
| | | |
| | | process.env.NODE_ENV = 'production' |
| | | process.env.NODE_ENV_SELF = 'production' |
| | | |
| | | const ora = require('ora') |
| | | const rm = require('rimraf') |
| | |
| | | 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() |
| | |
| | | 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' + |