-
Notifications
You must be signed in to change notification settings - Fork 3
/
package-scripts.js
96 lines (93 loc) · 2.72 KB
/
package-scripts.js
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const npsUtils = require("nps-utils");
const series = npsUtils.series;
const concurrent = npsUtils.concurrent;
const rimraf = npsUtils.rimraf;
const crossEnv = npsUtils.crossEnv;
const commonTags = npsUtils.commonTags;
const oneLine = commonTags.oneLine;
function getBuildFor(library) {
return {
default: {
description: `run all ${library} builds in parallel`,
script: concurrent.nps(
`build.${library}.esm`,
`build.${library}.cjs`,
`build.${library}.umd.main`,
`build.${library}.umd.min`
),
},
esm: {
description: "run the build with rollup (uses rollup.config.js)",
script: `rollup --config --environment FORMAT:esm,LIBRARY:${library}`,
},
cjs: {
description: "run rollup build with CommonJS format",
script: `rollup --config --environment FORMAT:cjs,LIBRARY:${library}`,
},
umd: {
min: {
description: "run the rollup build with sourcemaps",
script: `rollup --config --sourcemap --environment MINIFY,FORMAT:umd,LIBRARY:${library}`,
},
main: {
description: "builds the cjs and umd files",
script: `rollup --config --sourcemap --environment FORMAT:umd,LIBRARY:${library}`,
},
},
};
}
module.exports = {
scripts: {
contributors: {
add: {
description: "When new people contribute to the project, run this",
script: "all-contributors add",
},
generate: {
description: "Update the badge and contributors table",
script: "all-contributors generate",
},
},
test: {
default: crossEnv("NODE_ENV=test jest --coverage"),
update: crossEnv("NODE_ENV=test jest --coverage --updateSnapshot"),
watch: crossEnv("NODE_ENV=test jest --watch"),
build: {
description: "validates the built files",
script: crossEnv("NODE_ENV=test jest --config other/jest.config.js"),
},
},
build: {
description: "delete the dist directory and run all builds",
default: series(
rimraf("dist"),
concurrent.nps("build.react", "build.preact")
),
react: getBuildFor("react"),
preact: getBuildFor("preact"),
},
storybook: {
default: "start-storybook -p 6006 -c stories",
build: series(
"cd stories",
"npm install",
"cd ..",
"build-storybook -c stories"
),
},
lint: {
description: "lint the entire project",
script: "eslint . --cache",
},
validate: {
description: oneLine`
This runs several scripts to make sure things look
good before committing or on clean install
`,
script: concurrent.nps("lint", "build", "test"),
},
},
options: {
silent: false,
},
};