UNPKG

863 BJavaScriptView Raw
1const path = require('path')
2const verifyPorts = require('./../snippet/verifyPorts')
3
4function getPack(dir, opt, env) {
5 // reload package.json
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 // name
12 if (!pack.name) {
13 throw new Error('name in package.json must be set')
14 }
15
16 verifyPorts(pack, 'ports')
17
18 // apply dev*
19 if (env.NODE_ENV === 'development') {
20 // apply devPorts
21 verifyPorts(pack, 'devPorts')
22 pack.ports = pack.devPorts || originalPackage.ports || []
23 // apply devWorkers
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
35module.exports = getPack