1 | const EventEmitter = require('events');
|
2 | const clean = require('./clean');
|
3 | const _build = require('./_build');
|
4 | const { logger } = require('./logger');
|
5 |
|
6 | module.exports = function build(pobrc, cwd, envs, watch = false, options) {
|
7 | const envsSet = envs !== undefined;
|
8 |
|
9 | if (!envs) {
|
10 | envs = pobrc.envs;
|
11 |
|
12 | if (envs.includes('node5')) {
|
13 | logger.warn('node5 is deprecated.');
|
14 | envs = envs.filter(env => env === 'node5');
|
15 | }
|
16 |
|
17 | envs = envs.reduce((res, env) => {
|
18 | res.push(env, `${env}-dev`);
|
19 | return res;
|
20 | }, []);
|
21 |
|
22 | clean(envs);
|
23 | }
|
24 |
|
25 |
|
26 | if (watch) {
|
27 | watch = new EventEmitter();
|
28 | }
|
29 |
|
30 | return Promise.all([
|
31 | _build(pobrc, cwd, pobrc.src || 'src', env => `lib-${env}`, envs, watch, options),
|
32 | !envsSet && pobrc.testing && _build(pobrc, cwd, 'test/src', () => 'test/node6', ['node6'], watch, options),
|
33 | !envsSet && pobrc.examples && _build(pobrc, cwd, 'examples/src', () => 'examples/node6', ['node6'], watch, options),
|
34 | ]).then(() => watch);
|
35 | };
|