保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
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
const throwError = require('./throw-error')
 
module.exports = function (name, deps) {
  var i, len
  var missing = []
  if (typeof deps === 'string') {
    deps = [deps]
  }
  for (i = 0, len = deps.length; i < len; i++) {
    var mis
    var req = deps[i]
    if (typeof req === 'string') {
      mis = req
    } else {
      mis = req[1]
      req = req[0]
    }
    try {
      // hack for babel-runtime because it does not expose "main" field
      if (req === 'babel-runtime') {
        req = 'babel-runtime/core-js'
      }
      require.resolve(req)
    } catch (e) {
      missing.push(mis)
    }
  }
  if (missing.length > 0) {
    var message = 'You are trying to use "' + name + '". '
    var npmInstall = 'npm install --save-dev ' + missing.join(' ')
    if (missing.length > 1) {
      var last = missing.pop()
      message += missing.join(', ') + ' and ' + last + ' are '
    } else {
      message += missing[0] + ' is '
    }
    message += 'missing.\n\nTo install run:\n' + npmInstall
    throwError(message)
  }
}