Jshint: 2.9.3μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠλŠ” W100에 λŒ€ν•œ κ²½κ³  λΉ„ν™œμ„±ν™”

에 λ§Œλ“  2016λ…„ 08μ›” 19일  Β·  4μ½”λ©˜νŠΈ  Β·  좜처: jshint/jshint

https://github.com/IgniteUI/ignite-ui/pull/243 μ°Έμ‘° :

2.9.2둜 μ „λ‹¬λœ 첫 번째 λΉŒλ“œ, 2.9.3 μ—…λ°μ΄νŠΈλ‘œ 연속 λΉŒλ“œκ°€ μ‹€νŒ¨ν•˜κ³  쀄이 /*jshint -W100 */둜 λž˜ν•‘λ¨

μ—…λ°μ΄νŠΈ λΈ”λ‘œκ·Έ 에 κ΄€λ ¨ ν•­λͺ©μ΄ ν‘œμ‹œλ˜μ§€ μ•Šμ§€λ§Œ 처리 방식이 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

Regression

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ‹ κ³  κ°μ‚¬ν•©λ‹ˆλ‹€! 이것은 참으둜 νšŒκ·€μž…λ‹ˆλ‹€.

λ§Žμ€ 도움이 λ˜λŠ” 것은 μ•„λ‹ˆμ§€λ§Œ μƒˆ λ¦΄λ¦¬μŠ€μ—μ„œ 이전에 μ‘΄μž¬ν•˜λ˜ 버그가 ν‘œλ©΄ν™”λœ 것 κ°™μŠ΅λ‹ˆλ‹€. κ³΅μœ ν•˜μ‹  μž…λ ₯을 μ€„μ΄λŠ” κ³Όμ •μ—μ„œ 2.9.2 λ²„μ „μ—μ„œλ„ 이 문제λ₯Ό κ²½ν—˜ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μž μ‹œ 자리λ₯Ό λΉ„μ›Œμ•Ό ν•˜μ§€λ§Œ 였늘 저녁(EST)에 νŒ¨μΉ˜κ°€ μ€€λΉ„λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

λͺ¨λ“  4 λŒ“κΈ€

μ‹ κ³  κ°μ‚¬ν•©λ‹ˆλ‹€! 이것은 참으둜 νšŒκ·€μž…λ‹ˆλ‹€.

λ§Žμ€ 도움이 λ˜λŠ” 것은 μ•„λ‹ˆμ§€λ§Œ μƒˆ λ¦΄λ¦¬μŠ€μ—μ„œ 이전에 μ‘΄μž¬ν•˜λ˜ 버그가 ν‘œλ©΄ν™”λœ 것 κ°™μŠ΅λ‹ˆλ‹€. κ³΅μœ ν•˜μ‹  μž…λ ₯을 μ€„μ΄λŠ” κ³Όμ •μ—μ„œ 2.9.2 λ²„μ „μ—μ„œλ„ 이 문제λ₯Ό κ²½ν—˜ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μž μ‹œ 자리λ₯Ό λΉ„μ›Œμ•Ό ν•˜μ§€λ§Œ 였늘 저녁(EST)에 νŒ¨μΉ˜κ°€ μ€€λΉ„λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

μ΄μ•ΌκΈ°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

ν‘œν˜„μ‹μ—μ„œ μ—¬λŠ” κ΄„ν˜Έ 문자( ( )λ₯Ό λ§Œλ‚˜λ©΄
μœ„μΉ˜, JSHint와 같은 ES2015 인식 JavaScript νŒŒμ„œλŠ” λ‹€μŒμ„ κ²°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
κ·Έλ£Ήν™” μ—°μ‚°μž λ˜λŠ” ν™”μ‚΄ν‘œ ν•¨μˆ˜μ˜ μ‹œμž‘μ„ ν‘œμ‹œν•˜λŠ”μ§€ μ—¬λΆ€.

JSHintλŠ” 찾을 λ•ŒκΉŒμ§€ μ΄μ–΄μ§€λŠ” λͺ¨λ“  μž…λ ₯을 ν† ν°ν™”ν•˜μ—¬ 이λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€.
"일치" λ‹«λŠ” κ΄„ν˜Έ 문자( ) ). κ·Έ μ‹œμ μ—μ„œ, 그것은 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€
문제의 생산 νŠΉμ„±μ— λŒ€ν•œ κ²°μ • - μ€€μˆ˜ μ—¬λΆ€
=> ν† ν°μœΌλ‘œ ν™”μ‚΄ν‘œ κΈ°λŠ₯μž…λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ κ·Έλ£Ήν™” μ—°μ‚°μžμž…λ‹ˆλ‹€.

μ•žμ„ λ‚΄λ‹€λ³΄λŠ” λ™μ•ˆμ—λŠ” λ§ˆμ£ΌμΉ˜λŠ” 인라인 μ§€μ‹œλ¬Έμ„ μ μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
예: -W100 . κ·ΈλŸ¬λ‚˜ λ ‰μ„œλŠ” νŠΉμ • 보풀을 λ°©μΆœν•˜λŠ” μ±…μž„μ΄ μžˆμŠ΅λ‹ˆλ‹€.
였λ₯˜ _포함_ W100 . λ”°λΌμ„œ JSHintκ°€ "미리 내닀보기"λ₯Ό μ‹œμž‘ν•˜μžλ§ˆμž
μ΄λŸ¬ν•œ 잠재적으둜 μœ„ν—˜ν•œ 캐릭터에 λŒ€ν•œ λ°˜μ‘μ€ "κ³ μ •"λ©λ‹ˆλ‹€.
(μ΄λŠ” 이 νšŒκ·€λ‘œ κ³ ν†΅λ°›λŠ” μ‚¬λžŒμ„ μœ„ν•œ 단기 μˆ˜μ • 사항을 μ œμ•ˆν•©λ‹ˆλ‹€. disable
IIFE μ „ W100 . μ•„λ‹ˆ 이상, λ‚˜λ„ μ•Œμ•„,ν•˜μ§€λ§Œ μ°Έκ³  κ°€μ˜ 관련성경고에 μ΄μ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.)

이 νšŒκ·€λŠ” 겉보기에 관련이 μ—†μ–΄ λ³΄μ΄λŠ” 패치인 gh-3003 λ•Œλ¬Έμ— λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.
μ΄μ „μ—λŠ” μ„Έλ―Έμ½œλ‘  토큰이 있으면 미리보기가 μ·¨μ†Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
λ‹€μŒκ³Ό 같이 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

(function() {
;//<-- lookahead ends at this semicolon token
}());

...κ·ΈλŸ¬λ‚˜ ν™”μ‚΄ν‘œ κΈ°λŠ₯ λ•Œλ¬Έμ— μœ νš¨ν•˜μ§€ μ•Šμ€ νœ΄λ¦¬μŠ€ν‹±μ΄ λ°œκ²¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
λ§€κ°œλ³€μˆ˜ μžμ²΄μ— ν•΄λ‹Ή 토큰이 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.

(x = function() {
;//<-- lookahead should *not* end at this semicolon token
}) => x;

λ”°λΌμ„œ μ΄λŸ¬ν•œ 경우 ν™”μ‚΄ν‘œ κΈ°λŠ₯을 μ œλŒ€λ‘œ μΈμ‹ν•˜κΈ° μœ„ν•΄ μ œκ±°ν–ˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό 염두에 두고 μ™„μ „νžˆ μΆ•μ†Œλœ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ 쑰금 더 λͺ…ν™•ν•  수 μžˆμŠ΅λ‹ˆλ‹€(즉,
λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ—μ„œ 인쇄할 수 μ—†λŠ” \u200f λ¬Έμžμž…λ‹ˆλ‹€.

(function() {
    ;

    /*jshint -W100 */
    "‏";
})();

gh-3003(예: 버전 2.9.2의 JSHint) μ΄μ „μ—λŠ” μ„Έλ―Έμ½œλ‘ μ΄
lookahead 및 인쇄할 수 μ—†λŠ” λ¬ΈμžλŠ” _after_κΉŒμ§€ λ ‰μ‹±λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
JSHint μ§€μ‹œλ¬Έμ΄ μ μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μˆ˜μ • 사항이 적용된 JSHintλŠ” 문자λ₯Ό λ ‰μ‹±ν•©λ‹ˆλ‹€.
_before_ μ§€μ‹œλ¬Έμ„ μ μš©ν•˜κ³  κ²½κ³ λ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€.

이것은 λ˜ν•œ JSHint 2.9.2μ—μ„œλ„ 근본적인 λ¬Έμ œκ°€ μ–΄λ–»κ²Œ μ‘΄μž¬ν•˜λŠ”μ§€ λ³΄μ—¬μ€λ‹ˆλ‹€.
λ‹€μŒ μž…λ ₯은 ν•΄λ‹Ή λ²„μ „μ˜ κ²½κ³ λ₯Ό 잘λͺ» νŠΈλ¦¬κ±°ν•©λ‹ˆλ‹€.
JSHint:

(function() {
    /*jshint -W100 */
    "‏";
})();

μ—¬κΈ°μ—μ„œ κ΄„ν˜Έμ— μ˜ν•΄ νŠΈλ¦¬κ±°λ˜λŠ” λ―Έλ¦¬λ³΄κΈ°λŠ” μ–΄λŠ μͺ½μ—μ„œλ„ μ€‘λ‹¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
버전.

이상적인 μˆ˜μ •μ€ 미리보기 쀑에 μ§€μ‹œλ¬Έμ„ μ μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. λΆˆν–‰νžˆλ„,
JSHint의 인라인 μ§€μ‹œλ¬Έμ€ μœ μ—°μ„±μ΄ 맀우 λ†’κΈ° λ•Œλ¬Έμ—
κ°€λŠ₯ν•œ. μ‚¬μš©μžλŠ” μ§€μ‹œλ¬Έμ΄ λ ‰μ„œλ₯Ό μ˜λ―Έν•˜λŠ” "ν•¨μˆ˜ λ²”μœ„"λ₯Ό κ°€μ§ˆ κ²ƒμœΌλ‘œ κΈ°λŒ€ν•©λ‹ˆλ‹€.
μƒμ„±ν•˜λŠ” ν† ν°μ˜ μ£Όλ³€ 의미λ₯Ό μ•Œκ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

여기에 μˆ˜μ • 사항을 μ œμΆœν–ˆμŠ΅λ‹ˆλ‹€: gh-3016. μž₯기적으둜 고렀해봐야 ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.
(잘λͺ»λœ) μ„Έλ―Έμ½œλ‘  없이 미리보기 발견적 방법에 λŒ€ν•œ 기타 κ°œμ„  사항
IIFEμ—μ„œ 전체 ν”„λ‘œκ·Έλž¨μ„ λž˜ν•‘ν•˜λŠ” 일반적인 관행은
JSHintλŠ” μ²˜μŒμ— λͺ¨λ“  μž…λ ₯을 lexν•©λ‹ˆλ‹€.

μžμ„Έν•œ μ„€λͺ… κ°μ‚¬ν•©λ‹ˆλ‹€!
μŠ€μ½”ν”„μ— μ—„μ²­λ‚œ μ–‘μ˜ μΆ”κ°€ μž‘μ—…μ„ μΆ”κ°€ν•˜μ§€ μ•Šκ³ λ„ 이것이 μ–Όλ§ˆλ‚˜ κΉŒλ‹€λ‘œμšΈ 수 μžˆλŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.
2.9.2κ°€ 우리 νŒŒμΌμ—μ„œ μž‘λ™ν•˜κΈ° λ•Œλ¬Έμ— μž μ‹œ λ™μ•ˆ 2.9.2λ₯Ό κ³ μˆ˜ν•˜κ³  λ¬Έμ œκ°€ λ˜λŠ” 뢀뢄을 μ•žμœΌλ‘œ 관리할 수 μžˆλŠ” λΈ”λ‘μœΌλ‘œ λ‚˜λˆ„λŠ” 방법을 μ‚΄νŽ΄λ³Ό κ²ƒμž…λ‹ˆλ‹€. :)

이 버그에 λŒ€ν•œ μˆ˜μ • 사항은 이제 μƒˆλ‘œ κ²Œμ‹œλœ JSHint 버전 2.9.4μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

http://jshint.com/blog/2016-10-20/release-2-9-4/

ν•΄λ‹Ή 버전에 μ—¬μ „νžˆ λ¬Έμ œκ°€ 있으면 μ•Œλ €μ£Όμ„Έμš”!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰