-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscripts-bundle.js
More file actions
62 lines (49 loc) · 1.43 KB
/
scripts-bundle.js
File metadata and controls
62 lines (49 loc) · 1.43 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#! /usr/bin/env node
'use strict';
const gc = require('../gember.config');
const chalk = require('chalk');
const exec = require('shelljs').exec;
const Promise = require('bluebird');
const fs = Promise.promisifyAll(require('fs'));
const log = console.log.bind(console);
const arg = require('yargs')
.option('bundle', {
alias: 'b',
string: true,
describe: 'specified bundle that has been modified'
})
.argv;
if (!arg.bundle) {
createBundles();
} else {
createBundle(arg.bundle);
}
log(chalk.green(`[scripts:bundle]: => start`));
function create(bundle) {
let bundleName = bundle.split('.')[1];
console.time(chalk.green(`[scripts:bundle]: ${bundleName} => finished in`));
exec(`rollup -c sources/scripts/${bundle} --colors`, function () {
console.timeEnd(chalk.green(`[scripts:bundle]: ${bundleName} => finished in`));
});
}
function createBundle(bundle) {
if (bundle.startsWith('rollup')) {
bundle = bundle.split('.')[1];
}
let bundleConfig = `rollup.${bundle}.config.js`;
create(bundleConfig);
}
function createBundles() {
const getFiles = function () {
return fs.readdirAsync(gc.dir.scripts);
};
getFiles().map(filename => {
return filename;
}).filter(item => {
return item.startsWith('rollup');
}).then(configs => {
for (let config in configs) {
create(configs[config]);
}
});
}