如何替换 npm 中的凉亭包 jsTimezoneDetect
Posted
技术标签:
【中文标题】如何替换 npm 中的凉亭包 jsTimezoneDetect【英文标题】:How can I replace the bower package jsTimezoneDetect in npm 【发布时间】:2020-07-06 15:32:00 【问题描述】:我正在尝试替换我的仓库中的 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>
此包没有任何依赖关系,错误似乎来自包本身的问题。我在这里做错了什么吗?有没有其他人遇到过类似的问题?任何帮助将不胜感激!
【问题讨论】:
【参考方案1】:对于将来可能遇到此问题的任何人,以下是我解决此问题的方法:
在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()
;
【讨论】:
以上是关于如何替换 npm 中的凉亭包 jsTimezoneDetect的主要内容,如果未能解决你的问题,请参考以下文章