2017-05-09 7 views
0

이 코드는 ESLint를 통해 실행중인 .js 파일에 있습니다. 하지만이 줄에 대한 오류가 발생했습니다 : iFrameResize({.ESLint no-undef - BigCommerce 관련 문제

세이 핑 : error 'iFrameResize' is not defined no-undef.

나는 이런 식으로 정의하지 않는 경우 : const iFrameResize()

내 코드를 더 이상 어떻게 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를 충족시키는 방법을 알고 싶습니다.

+2

가능한 복제 (http://stackoverflow.com/questions/27732209/turning-off-eslint-rule-for-a-specific-line) – Michael

+0

@ Michael 당신이 왜 복제본이라고 생각하는지 알 겠지만 오류보고를 비활성화하지 않고 ESLint를 행복하게 만드는 방법을 알고 싶습니다. –

+0

지금 차이점을 보았습니다. "오류보고 기능을 해제하지 않고"귀하의 질문 중 마지막 부분을 놓쳤습니다. 따라서 중복되지 않았 음을 동의합니다. – Michael

답변

3

코드가 iFrameResize()에서 작동하고 있는지 확인하고 js 파일로 설정 한 아키텍처로 인해 그 오류를 무시하고 싶을 수도 있습니다. 가장 단순한 것은

// eslint-disable-line 

입니다.이 경우 해당 행에 대해 esilnt를 사용할 수 없습니다.

이 함수의 정의는 아마 이렇게 window입니다 전역에 부착되어있는 라이브러리에서 제공하기 때문에

window.iFrameResizer() 

지금 eslint 당신이 함수를 호출하고 있음을 이해 트릭 그 범위를 않습니다 호출하는 창 개체에 있기 때문에 불평하지 않습니다.

+0

감사합니다. 즉각적인 질문에 분명히 대답합니다. 오류가 발생하지 않도록 ESLint를 만족시킬 방법이 있는지 알고 싶습니다. –

+0

이것은 iframe-resizer라는 라이브러리입니다. –

+0

이것은 전역 범위에있는 정의입니다. 그냥 할 window.iFrameResizer() –

5

또한 eslint는 여러 가지 방법을 제공합니다. eslint docs을 참조하십시오.

파일 상단에 다음을 추가하는 것이 좋습니다. 당신이 iFrameResize을 많이 사용하는 경우

/* global iFrameResize, iFrameManage, etc */ 

또는 경우 ': 또한 배열을 제공 할 수

/* global iFrameResize */ 

: 유일한 장소의 몇 가지에 사용되는 글로벌 종속성을 정의하려면이 방법을 사용 jQuery와 같은 것에 의존하고 있다면, .eslintrc 파일에 전역으로 정의하는 것을 고려해보십시오.

"globals": { 
    "iFrameManage": true, 
} 
[특정 라인에 대한 eslint 규칙을 끄기]의