在 Laravel 中将 JS 添加到 app.js 时未捕获的 ReferenceError

问题描述

我有一些使用函数 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...

当我打开页面时,我在控制台中看到以下内容(没有错误)。

enter image description here