Validate built bundles exists (#11452)
Soo Jae Hwang committed
Nov 4, 2017 at 21:57 UTC
da86a4553b2f8c71665b7d80e3405c1971451c2b
1 file changed
+42
-5
scripts/rollup/validate/index.js
+42
-5
@@ -3,12 +3,13 @@
3
const chalk = require('chalk');
4
const path = require('path');
5
const spawnSync = require('child_process').spawnSync;
6
+const glob = require('glob');
7
8
const extension = process.platform === 'win32' ? '.cmd' : '';
9
10
// Performs sanity checks on bundles *built* by Rollup.
11
// Helps catch Rollup regressions.
11
-function run(format, filePatterns) {
12
+function lint({format, filePatterns}) {
13
console.log(`Linting ${format} bundles...`);
14
const result = spawnSync(
15
path.join('node_modules', '.bin', 'eslint' + extension),
@@ -36,7 +37,43 @@ function run(format, filePatterns) {
37
}
38
}
39
39
-run('fb', [`./build/facebook-www/*.js`]);
40
-run('rn', [`./build/{react-cs,react-native,react-rt}/*.js`]);
41
-run('umd', [`./build/packages/*/umd/*.js`]);
42
-run('cjs', [`./build/packages/*/*.js`, `./build/packages/*/cjs/*.js`]);
40
+function checkFilesExist(bundle) {
41
+ const {format, filePatterns} = bundle;
42
+ filePatterns.map(pattern => {
43
+ console.log(`Check if files exist in ${pattern}`);
44
+ const files = glob.sync(pattern);
45
+ if (files.length === 0) {
46
+ console.error(
47
+ chalk.red(
48
+ `No files found in glob pattern ${pattern} in ${format} bundle.`
49
+ )
50
+ );
51
+ process.exit();
52
+ } else {
53
+ console.log(chalk.green(`${files.length} files found.`));
54
+ console.log();
55
+ }
56
+ });
57
+ return bundle;
58
+}
59
+
60
+const bundles = [
61
+ {
62
+ format: 'fb',
63
+ filePatterns: [`./build/facebook-www/*.js`],
64
+ },
65
+ {
66
+ format: 'rn',
67
+ filePatterns: [`./build/{react-cs,react-native,react-rt}/*.js`],
68
+ },
69
+ {
70
+ format: 'umd',
71
+ filePatterns: [`./build/packages/*/umd/*.js`],
72
+ },
73
+ {
74
+ format: 'cjs',
75
+ filePatterns: [`./build/packages/*/*.js`, `./build/packages/*/cjs/*.js`],
76
+ },
77
+];
78
+
79
+bundles.map(checkFilesExist).map(lint);