Skip to content

Commit bff2e1b

Browse files
committed
compatible run scripts for Win/NodeJS, and separate build/test examples
1 parent dc06e77 commit bff2e1b

File tree

4 files changed

+47
-6
lines changed

4 files changed

+47
-6
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ node_js:
44
script:
55
- npm test
66
- npm run build:examples
7-
7+
- npm run test:examples

examples/buildAll.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,23 @@ var exampleDirs = fs.readdirSync(__dirname).filter((file) => {
1313
// Ordering is important here. `npm install` must come first.
1414
var cmdArgs = [
1515
{ cmd: 'npm', args: ['install'] },
16-
{ cmd: 'webpack', args: ['index.js'] },
17-
{ cmd: 'npm', args: ['test'] }
16+
{ cmd: 'webpack', args: ['index.js'] }
1817
];
1918

2019
for (let dir of exampleDirs) {
2120

2221
for (let cmdArg of cmdArgs) {
23-
// delcare opts in this scope to avoid https://github.com/joyent/node/issues/9158
22+
// declare opts in this scope to avoid https://github.com/joyent/node/issues/9158
2423
let opts = {
2524
cwd: path.join(__dirname, dir),
2625
stdio: 'inherit'
2726
};
28-
29-
let result = spawnSync(cmdArg.cmd, cmdArg.args, opts);
27+
let result = {};
28+
if (process.platform === 'win32') {
29+
result = spawnSync(cmdArg.cmd + '.cmd', cmdArg.args, opts);
30+
} else {
31+
result = spawnSync(cmdArg.cmd, cmdArg.args, opts);
32+
}
3033
if (result.status !== 0) {
3134
throw new Error('Building examples exited with non-zero');
3235
}

examples/testAll.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Runs an ordered set of commands within each of the build directories.
3+
*/
4+
5+
import fs from 'fs';
6+
import path from 'path';
7+
import { spawnSync } from 'child_process';
8+
9+
var exampleDirs = fs.readdirSync(__dirname).filter((file) => {
10+
return fs.statSync(path.join(__dirname, file)).isDirectory();
11+
});
12+
13+
// Ordering is important here. `npm install` must come first.
14+
var cmdArgs = [
15+
{ cmd: 'npm', args: ['test'] }
16+
];
17+
18+
for (let dir of exampleDirs) {
19+
20+
for (let cmdArg of cmdArgs) {
21+
// declare opts in this scope to avoid https://github.com/joyent/node/issues/9158
22+
let opts = {
23+
cwd: path.join(__dirname, dir),
24+
stdio: 'inherit'
25+
};
26+
27+
let result = {};
28+
if (process.platform === 'win32') {
29+
result = spawnSync(cmdArg.cmd + '.cmd', cmdArg.args, opts);
30+
} else {
31+
result = spawnSync(cmdArg.cmd, cmdArg.args, opts);
32+
}
33+
if (result.status !== 0) {
34+
throw new Error('Building examples exited with non-zero');
35+
}
36+
}
37+
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"test": "mocha --compilers js:babel/register --recursive",
1111
"test:watch": "npm test -- --watch",
1212
"test:cov": "babel-node $(npm bin)/isparta cover $(npm bin)/_mocha -- --recursive",
13+
"test:examples": "babel-node examples/testAll.js",
1314
"check": "npm run lint && npm run test",
1415
"build:lib": "babel src --out-dir lib",
1516
"build:umd": "webpack src/index.js dist/redux.js --config webpack.config.development.js",

0 commit comments

Comments
 (0)