-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpackage-scripts.js
More file actions
128 lines (125 loc) · 3.68 KB
/
Copy pathpackage-scripts.js
File metadata and controls
128 lines (125 loc) · 3.68 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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
const npsUtils = require('nps-utils')
// npsUtils has these deps native to the package.
// no need to yarn add -D any of these packages.
const crossEnv = npsUtils.crossEnv
const rimraf = npsUtils.rimraf
const series = npsUtils.series
const version = require('./package.json').version
module.exports = {
scripts: {
build: {
description: 'Building in production environment.',
default: series.nps('build.cjs', 'build.es'),
andTest: {
description: 'Run production build & test the output bundles.',
script: series.nps('build', 'test.build')
},
dev: {
description: 'Building in development environment.',
script: series.nps('build.cjs.dev', 'build.es.dev')
},
cjs: {
description: 'CommonJS & UMD builds',
default: `${crossEnv('NODE_ENV=production')} rollup -c`,
dev: `${crossEnv('NODE_ENV=development')} rollup -c`
},
es: {
description: 'ES build',
default: `${crossEnv(
'NODE_ENV=production'
)} rollup -c rollup.config.es.js`,
dev: `${crossEnv('NODE_ENV=development')} rollup -c rollup.config.es.js`
}
},
commit: {
description: 'Run commitizen-cli.',
script: 'git-cz'
},
flow: {
description: 'Type-check code base.',
script: 'flow check'
},
library: {
description: 'Generate tarball file & open',
default: series.nps('library.pack', 'library.open'),
open: {
description: 'Open the tarball file',
script: `open how-to-open-source-${version}.tgz`
},
pack: {
description: 'Package the build for local use',
script: 'npm pack'
}
},
lint: {
default: {
description: 'Perform lint check on selected code.',
script: 'eslint src __tests___'
},
fix: {
description: 'Perform lint check on selected code & fix all errors.',
script: series.nps('lint --fix')
}
},
clean: {
description: 'Clean project directory of generated directories & files.',
script: series(
rimraf('coverage'),
rimraf('dist'),
rimraf('es'),
rimraf('lib'),
rimraf('package'),
rimraf('*.tgz')
)
},
reportCoverage: {
description: 'Send coverage information to third party.',
script: 'codecov'
},
release: {
description:
'We automate releases with semantic-release. This should only be run on travis',
script: 'semantic-release'
},
sandbox: {
description: 'Run all sandbox scripts.',
default: series.nps('sandbox.cjs', 'sandbox.es'),
cjs: {
description: 'Run commonjs code.',
script: 'babel-node sandbox-cjs.js'
},
es: {
description: 'Run es2015 code.',
script: `babel-node sandbox-es.js`
}
},
test: {
description: 'Test code base.',
default: 'jest __tests__/*pre.test.js --runInBand',
build: {
description: 'Test end product.',
script: 'jest __tests__/*.post.test.js'
},
coverage: {
description: 'Generate coverage on code base.',
script: series.nps('test --coverage')
},
watch: {
description: 'Watch tests.',
script: series.nps('test --watch')
}
},
validate: {
description: 'Validate code by linting, type-checking.',
default: series.nps('lint.fix', 'flow'),
dependencies: {
description: 'Check dependencies for vulnerabilities with Snyk.io',
script: 'snyk test'
},
withCoverage: {
description: 'Validate & generate coverage.',
script: series.nps('validate', 'test.coverage')
}
}
}
}