Как заменить пакет bower jsTimezoneDetect в npm - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь заменить бауэр в своем репо, и у меня возникают проблемы при замене этого пакета: "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>

Этот пакет не имеет каких-либо зависимостей, и ошибка, кажется, происходит от проблема в самой упаковке. Здесь я что-то не так делаю? Кто-нибудь еще сталкивался с подобной проблемой? Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 01 апреля 2020

Для тех, кто может столкнуться с этой проблемой в будущем, вот как я обошел эту проблему:

Найдено в последнем абзаце 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()
};
...