-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuild.js
46 lines (39 loc) · 1.15 KB
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/**
* @file build entry
* @author [email protected] (wangyisheng)
*/
var ora = require('ora');
var rm = require('rimraf');
var chalk = require('chalk');
var webpack = require('webpack');
var config = require('./config');
var webpackConfig = require('./webpack.conf');
var oraInfo = process.env.NODE_ENV === 'testing' ? 'Testing' : 'Production';
var spinner = ora('building for ' + oraInfo + '...');
spinner.start();
// 删除上一次的输出目录
rm(config.build.outputPath, function (err) {
if (err) {
throw err;
}
// webpack编译
webpack(webpackConfig, function (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.compilation.errors && stats.compilation.errors.length !== 0) {
console.log(chalk.red(' Build Fail.\n'));
process.exit(1);
}
console.log(chalk.cyan(' Build complete.\n'));
process.exit();
});
});