1 | const path = require('path')
|
2 | const verifyPorts = require('./../snippet/verifyPorts')
|
3 |
|
4 | function getPack(dir, opt, env) {
|
5 |
|
6 | const packPath = path.join(dir, 'package.json')
|
7 | delete require.cache[packPath]
|
8 | const originalPackage = require(packPath)
|
9 | const pack = Object.assign({}, originalPackage, opt)
|
10 |
|
11 |
|
12 | if (!pack.name) {
|
13 | throw new Error('name in package.json must be set')
|
14 | }
|
15 |
|
16 | verifyPorts(pack, 'ports')
|
17 |
|
18 |
|
19 | if (env.NODE_ENV === 'development') {
|
20 |
|
21 | verifyPorts(pack, 'devPorts')
|
22 | pack.ports = pack.devPorts || originalPackage.ports || []
|
23 |
|
24 | pack.workers = opt.workers || pack.devWorkers || originalPackage.workers
|
25 | }
|
26 |
|
27 | if (opt.ports) {
|
28 | verifyPorts(opt, 'ports', 'options')
|
29 | pack.ports = opt.ports
|
30 | }
|
31 |
|
32 | return pack
|
33 | }
|
34 |
|
35 | module.exports = getPack
|