问题描述
我有一些使用函数 detect.js 的浏览器嗅探器代码。未添加到我的项目时,它工作正常。尽管如此,当我尝试编译 JavaScript 并将其添加到 app.js 时,我在下面第一行的控制台中收到错误消息,刷新浏览器并检测浏览器版本。
未捕获的引用错误:forEach 未定义。
// Each Utility
var each = forEach = function (obj,iterator,context) {
if (obj == null) return;
if (nativeForEach && obj.forEach === nativeForEach) {
obj.forEach(iterator,context);
} else if (obj.length === +obj.length) {
for (var i = 0,l = obj.length; i < l; i++) {
iterator.call(context,obj[i],i,obj);
}
} else {
for (var key in obj) {
if (_.has(obj,key)) {
iterator.call(context,obj[key],key,obj);
}
}
}
};
似乎编译 JavaScript 正在对它做些什么。有什么建议吗?
解决方法
如果我使用 detect-browser 包。
npm i detect-browser
然后将以下内容添加到我的 app.js...
const { detect } = require('detect-browser');
const browser = detect();
try {
// handle the case where we don't detect the browser
if (browser) {
console.log(browser.name);
console.log(browser.version);
console.log(browser.os);
} else {
console.log('no browser');
}
} catch (e) {
console.log(e);
}
并发出 npm run prod
...
当我打开页面时,我在控制台中看到以下内容(没有错误)。