Skip to content

Commit 9e818a2

Browse files
Yuuno, Hibikijoeyklee
authored andcommitted
an automatic script to initialize experiments dir (#295)
* an alternative way to test with experiments dir * revert change for webpack.dev * Change experiments to manual-test * rename folder to manual-test * update .gitignore
1 parent c427df7 commit 9e818a2

File tree

4 files changed

+55
-3
lines changed

4 files changed

+55
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ node_modules
66
.vscode
77
*.DS_STORE
88
experiments
9+
manual-test
910
training/lstm/data/t
1011
.cache
1112
/public

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"commit": "git-cz",
1212
"prebuild": "rimraf dist",
1313
"start": "webpack-dev-server --open --config webpack.dev.babel.js",
14+
"manual-test": "webpack-dev-server --open --config webpack.test.babel.js",
1415
"build": "webpack --config webpack.prod.babel.js",
1516
"test": "./node_modules/karma/bin/karma start karma.conf.js",
1617
"test:single": "./node_modules/karma/bin/karma start karma.conf.js --single-run",

webpack.dev.babel.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
// This software is released under the MIT License.
44
// https://opensource.org/licenses/MIT
55

6-
import { existsSync } from 'fs';
76
import { join } from 'path';
87
import merge from 'webpack-merge';
98
import common from './webpack.common.babel';
@@ -14,9 +13,9 @@ export default merge(common, {
1413
devtool: 'inline-source-map',
1514
devServer: {
1615
watchContentBase: true,
17-
contentBase: [join(__dirname, './dist'), join(__dirname, './experiments')]
16+
contentBase: join(__dirname, './dist')
1817
},
19-
plugins: existsSync(join(__dirname, './experiments/index.html')) ? [] : [
18+
plugins: [
2019
new HtmlWebpackPlugin({
2120
title: 'ml5'
2221
})

webpack.test.babel.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright (c) 2019 ml5
2+
//
3+
// This software is released under the MIT License.
4+
// https://opensource.org/licenses/MIT
5+
6+
import { existsSync, mkdirSync, writeFileSync, lstatSync } from 'fs';
7+
import { join } from 'path';
8+
import merge from 'webpack-merge';
9+
import common from './webpack.common.babel';
10+
11+
// this is the function to initialize manual-test folder when running `npm run start`
12+
(function checkExperimentsFolder() {
13+
const experimentsDir = join(__dirname, './manual-test');
14+
const indexFile = join(experimentsDir, './index.html');
15+
16+
// create manual-test dir if not exist, or check if it is a readable dir.
17+
if (!existsSync(experimentsDir)) mkdirSync(experimentsDir);
18+
else {
19+
assert(lstatSync(experimentsDir).isDirectory(), "./manual-test should be a readable folder.");
20+
}
21+
22+
// create index.html in manual-test dir if not exist, or check if it is a readable file.
23+
if (!existsSync(indexFile)) {
24+
writeFileSync(indexFile, `
25+
<!DOCTYPE html>
26+
<html>
27+
<head>
28+
<title>ml5.js manual test</title>
29+
<script src="http://localhost:8080/ml5.js"></script>
30+
</head>
31+
<body>
32+
<script>
33+
// Your scripts would be written here
34+
</script>
35+
</body>
36+
</html>`.replace(/ /g, '').trimLeft());
37+
} else {
38+
assert(lstatSync(indexFile).isFile(), "./manual-test/index.html should be a readable file.");
39+
}
40+
41+
})();
42+
43+
export default merge(common, {
44+
mode: 'development',
45+
devtool: 'inline-source-map',
46+
devServer: {
47+
watchContentBase: true,
48+
contentBase: [join(__dirname, './dist'), join(__dirname, './manual-test')]
49+
},
50+
plugins: []
51+
});

0 commit comments

Comments
 (0)