Javascript 与BigCommerce的ESLint无未定义-js问题

Javascript 与BigCommerce的ESLint无未定义-js问题,javascript,bigcommerce,eslint,Javascript,Bigcommerce,Eslint,我在一个.js文件中得到了这段代码,我正在通过ESLint运行它。但是它抛出了一个关于这行的错误:iframesize({) 说明:未定义错误“iframesize”无未定义 如果我这样定义它:const iframesize() 我的代码不再工作了,如何让ESLint高兴并保持代码工作 export default class Page extends PageManager { before(next) { next(); } loaded(next) { next();

我在一个.js文件中得到了这段代码,我正在通过ESLint运行它。但是它抛出了一个关于这行的错误:
iframesize({

说明:
未定义错误“iframesize”无未定义

如果我这样定义它:
const iframesize()

我的代码不再工作了,如何让ESLint高兴并保持代码工作

export default class Page extends PageManager {

before(next) {
    next();
}

loaded(next) {
    next();
}

after(next) {
    const url = Url.parse(location.href, true);
    const IC_PAGE = '/international-checkout';
    const currentPageUrl = url.pathname;
    if (currentPageUrl.indexOf(IC_PAGE) !== -1 && $('#icForm').length === 1) {
        $(document).ready(() => {
            if ($('#icForm').length === 1) {
                if ($('.GiftStatus') && $('.GiftStatus').val() === '1') {
                    alert('Gift Certificate is not available for international orders. Please remove Gift Certificate from shopping cart before proceeding with International Checkout.');
                    window.parent.location.href = '/cart.php';
                    return false;
                }
                $('.icformfields').each((i, e) => {
                    const currentId = $(e).attr('id');
                    const res = currentId.split('-');
                    const finalId = Number(res[1]) + 1;
                    const finalName = $(e).attr('name') + finalId;
                    $(e.currentTarget).attr('name', finalName);
                });
                document.getElementById('icIframe').src = 'https://www.internationalcheckout.com/cart.php';
                document.getElementById('icForm').submit();
                $('#icIframe').load(() => {
                    $('#icForm').remove();
                    $('#loading').css('display', 'none');
                    $('html, body').animate({
                        scrollTop: $('#icIframe').offset().top,
                    }, 1000);
                    $('#icIframe').fadeIn();
                });
            }
        });
        iFrameResize({
            checkOrigin: false,
            enablePublicMethods: true,
        });
    }
    next();
}

}

我想知道如何在不禁用特定行的错误报告的情况下满足ESLint要求。

如果您确定代码正在处理
iframesize()
,可能是因为您使用js文件设置的体系结构,您可能只想忽略该错误。最简单的是

// eslint-disable-line
这将禁用该行的esilnt

由于此函数定义来自可能将其附加到全局作用域(即
window
)的库,因此从该作用域调用它就可以了

window.iFrameResizer()

现在eslint知道您正在调用驻留在window对象上的函数,所以如果您确定代码正在
iframesize()
上工作,它不会抱怨,可能是因为您使用js文件设置的架构,您可能只想忽略该错误。最简单的是

// eslint-disable-line
这将禁用该行的esilnt

由于此函数定义来自可能将其附加到全局作用域(即
window
)的库,因此从该作用域调用它就可以了

window.iFrameResizer()

现在eslint知道您正在调用驻留在window对象上的函数,所以它不会抱怨

值得注意的是,eslint提供了多种方法来解决这个问题。 请看地图

我建议将以下内容添加到文件顶部。使用此方法定义仅在几个位置使用的全局依赖项:

/* global iFrameResize */
您还可以提供一个阵列:

/* global iFrameResize, iFrameManage, etc */

如果你使用IFRAMESESIZE很多,或者如果你依赖于jQuery之类的东西,请考虑在你的<代码>中定义它为全局。

"globals": {
    "iFrameManage": true,
}

还值得注意的是,eslint提供了多种解决方法。 请看地图

我建议将以下内容添加到文件顶部。使用此方法定义仅在几个位置使用的全局依赖项:

/* global iFrameResize */
您还可以提供一个阵列:

/* global iFrameResize, iFrameManage, etc */

如果你使用IFRAMESESIZE很多,或者如果你依赖于jQuery之类的东西,请考虑在你的<代码>中定义它为全局。

"globals": {
    "iFrameManage": true,
}

@Michael的可能重复我明白你为什么认为它会重复,但我真的想知道如何在不禁用错误报告的情况下让ESLint开心。我现在明白了区别——我错过了你问题的最后一部分,关于“不禁用错误报告”,所以我同意它不是@Michael的复制品。我明白你为什么认为它是复制品,但我真的想知道如何在不禁用错误报告的情况下让ESLint开心。我现在明白了区别——我错过了你问题的最后一部分,关于“不禁用错误报告”,所以我同意它不是重复的。谢谢,这肯定回答了当前的问题。我希望我知道是否有一种方法可以在不禁用错误的情况下满足ESLint的要求……它是一个名为
iframe resizer
的库,它是一个存在于全局范围内的定义。只需执行window.iFrameResizer()太好了!这就是诀窍,现在我更了解了!我感谢你的帮助。谢谢,这肯定回答了眼前的问题。我希望我知道是否有一种方法可以在不禁用错误的情况下满足ESLint…这是一个名为
iframe resizer
的库,它是一个存在于全局范围内的定义。只需执行window.iFra即可meResizer()太好了!这就成功了,现在我对事情有了更好的了解!我感谢你的帮助。