You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
'use strict' |
|
require('./check-versions')() |
|
|
|
const ora = require('ora') |
|
const rm = require('rimraf') |
|
const path = require('path') |
|
const chalk = require('chalk') |
|
const webpack = require('webpack') |
|
const config = require('../config') |
|
const webpackConfig = require('./webpack.prod.conf') |
|
var connect = require('connect') |
|
var serveStatic = require('serve-static') |
|
|
|
const spinner = ora( |
|
'building for ' + process.env.env_config + ' environment...' |
|
) |
|
spinner.start() |
|
|
|
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { |
|
if (err) throw err |
|
webpack(webpackConfig, (err, stats) => { |
|
spinner.stop() |
|
if (err) throw err |
|
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 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" |
|
) |
|
) |
|
|
|
if (process.env.npm_config_preview) { |
|
const port = 9526 |
|
const host = 'http://localhost:' + port |
|
const basePath = config.build.assetsPublicPath |
|
const app = connect() |
|
|
|
app.use( |
|
basePath, |
|
serveStatic('./dist', { |
|
index: ['index.html', '/'] |
|
}) |
|
) |
|
|
|
app.listen(port, function() { |
|
console.log( |
|
chalk.green(`> Listening at http://localhost:${port}${basePath}`) |
|
) |
|
}) |
|
} |
|
}) |
|
})
|
|
|