如何替换 npm 中的 bower 包 jsTimezoneDetect

How can I replace the bower package jsTimezoneDetect in npm

我正在尝试替换我的存储库中的 Bower,但我在替换这个包时遇到了问题:"jsTimezoneDetect": "1.0.4"。建议的替换包是 "jstimezonedetect": "^1.0.6"。我正在使用这个包,如下所示:

var missionJoin = {
    timeZoneId : jstz.determine().name()
};

然而,这给了我这个错误:

ReferenceError: Can't find variable: Intl in node_modules/jstimezonedetect/dist/jstz.js (line 124)
get_from_internationalization_api@node_modules/jstimezonedetect/dist/jstz.js:124:22
determine@node_modules/jstimezonedetect/dist/jstz.js:412:67
joinMission@app/scripts/controllers/robo.profile.ProfileServiceCtrl.js:1:27975
test/specs/robo.profile.profileServiceCtrl.spec.js:151:27
<Jasmine>

这个包没有任何依赖关系,错误似乎来自包本身的问题。我在这里做错了什么吗?还有其他人遇到过类似的问题吗?任何帮助将不胜感激!

对于将来可能遇到此问题的任何人,以下是我解决此问题的方法:

https://github.com/iansinnott/jstz的最后一段找到

export function findTimeZone() {
  const oldIntl = window.Intl
  try {
    window.Intl = undefined
    const tz = jstz.determine().name()
    window.Intl = oldIntl
    return tz
  } catch (e) {
    // sometimes (on android) you can't override intl
    return jstz.determine().name()
  }
}

var missionJoin = {
    timeZoneId : findTimeZone()
};