Jshint: 동적 κ°€μ Έμ˜€κΈ° 지원 μΆ”κ°€

에 λ§Œλ“  2020λ…„ 03μ›” 30일  Β·  5μ½”λ©˜νŠΈ  Β·  좜처: jshint/jshint

Visual Studio μ½”λ“œ 1.43.2 μ‚¬μš©

ν™•μž₯: npmμ—μ„œ jshint의 μ „μ—­ μ„€μΉ˜λ₯Ό μ‚¬μš©ν•˜λŠ” "dbaeumer.jshint"

μ„€μΉ˜λœ JSHint: 2.11. 0@npm

μ˜ˆμƒ λ™μž‘: import() λ₯Ό ν•¨μˆ˜λ‘œ μΈμ‹ν•©λ‹ˆλ‹€.

μ‹€μ œ 행동

JSHintκ°€ μΈμ‹ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€

import("module/path.mjs") //Returns Promise of export object

ν•¨μˆ˜λ‘œ μ‹€ν–‰λ˜κ³  E053 및 E021 을 λ˜μ§‘λ‹ˆλ‹€ .

이 ν•¨μˆ˜λŠ” ".mjs"둜 λλ‚˜μ§€ μ•ŠλŠ” 슀크립트용 λͺ¨λ“ˆμ„ κ°€μ Έμ˜¬ λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.
에 λŒ€ν•œ 더 λ§Žμ€ μ •λ³΄λŠ” 이 MDN νŽ˜μ΄μ§€ μ—μ„œ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€

이 κΈ°λŠ₯이 μ œμ•ˆμ„œμ— μžˆλŠ”μ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ μ£Όμš” λΈŒλΌμš°μ €(Firefox, Chrome λ“±) 및 node.jsμ—μ„œλ§Œ μž‘λ™ν•©λ‹ˆλ‹€.


ꡬ성 κ°’


.jshintrc νŒŒμΌμ„ μ‚¬μš©ν•˜μ§€ μ•Šκ³  μ „μ—­ ν™•μž₯ 섀정을 μ‚¬μš©ν•©λ‹ˆλ‹€.

{
"jshint.lintHTML": true,
    "jshint.options": {
        "esversion": 9,
        "varstmt": true,
        "unused": true,
        "undef": true,
        "singleGroups": true,
        "eqeqeq": true,
        "freeze": true,
        "lastsemic": true,
        "leanswitch": true,
        "latedef": true,
        "maxdepth": 4,
        "noreturnawait": true,
        "nonbsp": true,
        "noarg": true,
        "maxparams": 3,
        "maxerr": 10,
        "maxcomplexity": 15,
        "node": true
    }
}
Proposal

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

μ‹ κ³  κ°μ‚¬ν•©λ‹ˆλ‹€! μš°λ¦¬λŠ” 동적 κ°€μ Έμ˜€κΈ°μ— λŒ€ν•œ 지원을 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ ν•  κ³„νšμž…λ‹ˆλ‹€(μƒˆλ‘œμš΄ μ–Έμ–΄ κΈ°λŠ₯에 λŒ€ν•œ 정책을 ν™•μ‹€νžˆ 좩쑱함). μ΄λŠ” 버그 λ³΄κ³ μ„œλ³΄λ‹€ κΈ°λŠ₯ μš”μ²­μ— 더 가깝기 λ•Œλ¬Έμ— 문제의 제λͺ©μ„ μ•½κ°„ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ‹ κ²½ 쓰지 μ•ŠμœΌμ…”λ„ λ©λ‹ˆλ‹€.

λ‹Ήμ‹ (λ˜λŠ” λ‹€λ₯Έ λˆ„κ΅°κ°€)이 이것을 κ΅¬ν˜„ν•˜λ €κ³  ν•œλ‹€λ©΄ 기꺼이 μ•ˆλ‚΄ν•΄ λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€!

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

μ‹ κ³  κ°μ‚¬ν•©λ‹ˆλ‹€! μš°λ¦¬λŠ” 동적 κ°€μ Έμ˜€κΈ°μ— λŒ€ν•œ 지원을 κ΅¬ν˜„ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ ν•  κ³„νšμž…λ‹ˆλ‹€(μƒˆλ‘œμš΄ μ–Έμ–΄ κΈ°λŠ₯에 λŒ€ν•œ 정책을 ν™•μ‹€νžˆ 좩쑱함). μ΄λŠ” 버그 λ³΄κ³ μ„œλ³΄λ‹€ κΈ°λŠ₯ μš”μ²­μ— 더 가깝기 λ•Œλ¬Έμ— 문제의 제λͺ©μ„ μ•½κ°„ μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€. μ‹ κ²½ 쓰지 μ•ŠμœΌμ…”λ„ λ©λ‹ˆλ‹€.

λ‹Ήμ‹ (λ˜λŠ” λ‹€λ₯Έ λˆ„κ΅°κ°€)이 이것을 κ΅¬ν˜„ν•˜λ €κ³  ν•œλ‹€λ©΄ 기꺼이 μ•ˆλ‚΄ν•΄ λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€!

@jugglinmike 이것이 es2020 μ œμ•ˆμΈ 것을 κ³ λ €ν•  λ•Œ 이 κΈ°λŠ₯을 ν† κΈ€ν•  수 μžˆλŠ” μ‚¬λžŒμ„ μ–΄λ–»κ²Œ 상상할 수 μžˆμŠ΅λ‹ˆκΉŒ? λ‹€λ₯Έ λͺ¨λ“  es2020 μ œμ•ˆ(nullish coalescing, optional chaining λ“±...)도 지원해야 ν•œλ‹€κ³  κ°€μ •ν•˜λŠ” esversion: 11 κ°€ μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

이 νŠΉμ • μ œμ•ˆμ— λŒ€ν•œ 지원을 κ΅¬ν˜„ν•˜λŠ” 것이 κ½€ 도움이 될 κ²ƒμ΄λ―€λ‘œ κ²€ν† ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

esversion: 11 λŠ” @almercierμ—κ²Œ λ”± λ§žλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€! λͺ¨λ“  μƒˆλ‘œμš΄ μ–Έμ–΄ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 것은 큰 일이며, λˆ„κ΅°κ°€κ°€ 이 λͺ¨λ“  것을 슀슀둜 μˆ˜ν–‰ν•  κ²ƒμ΄λΌκ³ λŠ” κΈ°λŒ€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. import ν‘œν˜„μ‹μ— μ§‘μ€‘ν•˜κ³  μ‹Άλ‹€λ©΄ λ‹€λ₯Έ κΈ°λŠ₯을 λ™μ‹œμ— μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€(λ˜λŠ” μƒˆ μ–Έμ–΄ 버전에 λŒ€ν•œ λΆ€λΆ„ 지원이 ν¬ν•¨λœ 릴리슀λ₯Ό κ²Œμ‹œ).

Test262용 ν•˜μœ„ λͺ¨λ“ˆμ„ μ—…λ°μ΄νŠΈ ν•˜μ—¬ μƒˆλ‘œμš΄ μ–Έμ–΄ κΈ°λŠ₯을 더 잘 λ˜ν•œ μƒˆλ‘œμš΄ λΆ€ λ¦΄λ¦¬μŠ€μ— λŒ€ν•œ 좔적 λΆ„κΈ°λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€ . 그것이 μš°λ¦¬κ°€ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μ°©λ₯™ν•΄μ•Ό ν•˜λŠ” κ³³μž…λ‹ˆλ‹€.

였늘 릴리슀된 JSHint 버전 2.13.0μ—λŠ” 동적 κ°€μ Έμ˜€κΈ°μ— λŒ€ν•œ 지원이 ν¬ν•¨λ©λ‹ˆλ‹€. esversion: 11 이상을 톡해 μƒˆ μ–Έμ–΄ κΈ°λŠ₯을 μ„ νƒν•˜λ„λ‘ ꡬ성을 μ—…λ°μ΄νŠΈν•΄μ•Ό ν•©λ‹ˆλ‹€.

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