JSHintλ ν΄λΉ μνλ₯Ό μλΉμμκ² λͺ ννκ² νμνλ ꡬμ±μ ν΅ν΄ μ€νμ /λΆμμ ν κΈ°λ₯μ λ ΈμΆν΄μΌ ν©λλ€. μ κ° μ μνλ λ΄μ©μ λ€μκ³Ό κ°μ΅λλ€.
.jshintrc
νμΌ:
{
"experimental": {
"expnt": true,
"async": true
}
}
μΈλΌμΈ μ§μλ¬Έ:
// jshint.experimental expnt: true
/* jshint.experimental async: true */
μμ μμλ κΈ°μ‘΄ 2λ¨κ³ μ μμ μ¬μ©νκ³ μμ§λ§ νΉμ μ΅μ λ³΄λ€ λ¨Όμ κ΅¬μ± λ©μ»€λμ¦μ ꡬννκ³ μΆμ΅λλ€.
μ λ "μ€νμ "μ΄λΌλ ν€μλλ₯Ό μ ννμ§λ§ μ£Όμ λ¦΄λ¦¬μ€ κ°μ λ³κ²½ μ¬νμ κΉ¨λ κ²μ λν κΈ°λλ₯Ό λ λͺ ννκ² μ λ¬νκΈ° λλ¬Έμ "λΆμμ ν"λ μ’μν©λλ€. @jshint/core κ·Έκ²μ λν΄ μ΄λ€ μκ°μ΄ μμ΅λκΉ?
experimental: true
λ° experimental: false
μ ν¨ν κ°μ
λκΉ? (λͺ¨λ μ€ν κΈ°λ₯μ νμ±ν/λΉνμ±ννλ €λ©΄) ( enforceall
μ λμΌν λ¬Έμ κ° μκΈ° λλ¬Έμ experimental: true
λ°λν©λλ€)μμ΅λλ€ experimental
μλ―Έ esversion: 6
?
κ·Έλ λ€λ©΄ esversion: 5
experimental: false
ν©λκΉ?
μ΄κ²μ μ§μ μ΄ μμ΅λκΉ?
μμ§ μμ΅λλ€. λμμ΄ νμνμλ©΄ μλ €μ£ΌμΈμ!
@jugglinmike κΈ°κΊΌμ΄ λμλλ¦¬κ² μ΅λλ€. λλ μμ§ λ΄ νλ‘μ νΈμ μ¬μ©νκΈ° μν΄ jshint saveλ₯Ό 건λλ¦¬μ§ μμμΌλ―λ‘ μκ°μ΄ 걸릴 μ μμ§λ§ μ΄λ² μ£Όμ μ¬κΈ°μ κΈ° νκ³ λ€κΈ° μμν κ²μ
λλ€. experimental: []
νκ³ μ΄λ₯Ό νμ©ν μ μλ μ€ν κΈ°λ₯μ νλμ PRλ‘ μ¬μ©νλ κ²μ΄ κ°μ₯ μ’μκΉμ?
@tschuy λλ¨ν΄! νΉμ κΈ°λ₯κ³Ό λ³λλ‘ κ΅¬μ± κ΅¬λ¬Έ λΆμ λ
Όλ¦¬λ₯Ό ꡬννκ³ μΆμμ΅λλ€. κ·Έκ²μ λ§€μ° μ΅μνμ κ²μ΄λ©° RC νμΌμ ν΅ν΄ μ§μ λ λλ‘λ§ μ΅μ
μ ν
μ€νΈν μ μμ΅λλ€(κΈ°λ³Έμ μΌλ‘ "experimental": {}
μ€λ₯κ° λ°μνμ§ μμμΌ ν©λλ€. "λΉ" μΈλΌμΈμ ν΄λΉνλ κ²μ μμ΅λλ€. μ§λ Ή).
κ·νμ μ견μ λκ΄νΈλ₯Ό μ¬μ©νλ€λ κ²μ μ μ μμ΅λλ€. μ΄κ²μ΄ κ·νμ μ€μμΈμ§ νμ€νμ§ μμ§λ§ μ κ° μ€λͺ ν μ루μ μ μ΄κ²μ κ°μ²΄ κ°μΌλ‘ μ§μ ν©λλ€.
μ§κΈμ ν λΉμ μ·¨μνκ³ μμ΅λλ€. μ΄ λ¬Έμ λ₯Ό λ§λ€ λ λ무 λκ΄μ μ΄μλ κ² κ°μ΅λλ€.
experimental.option
λ₯Ό) νμ©νλ κ²μ λν΄ μ΄λ»κ² μκ°νμλκΉ?
μ
// jshint option: true, experimental.option: true
λ³΄λ€ μ§§μ κ²
// jshint option: true
// jshint.experimental option: true
μλ
νμΈμ μ¬λ¬λΆ,
μ§λ¬Έν΄λ λ κΉμ? μ΄ λ¬Έμ μ μ§μ μ΄ μμ΅λκΉ?
μ λ§ κ°μ¬ν©λλ€.
μ΄λ€ λ΄μ€?
μ°λ¦¬λ ES7μ μ¬μ©νκΈ° μμνκ³ μΆμ΅λλ€!
@phra JSHint λ₯Ό μ¬μ©ν λ ES7μ μ΄λ€ κΈ°λ₯μ λ¬Έμ κ° μμ΅λκΉ?
λ°©κΈ κ³΅μ μΉ μ¬μ΄νΈμμ μλνμ΅λλ€ -> http://jshint.com/
ES7 λΉλκΈ° ν¨μλ₯Ό μμ±ν΄ 보μμμ€: ν€μλ 'async'λ₯Ό λ³μλ‘ μ¬μ©νκ³ μ€λ₯λ₯Ό λ°μμν΅λλ€.
ES7/ES2016μλ κ·Έλ¬ν κΈ°λ₯μ΄ μμ΅λλ€. λ€μμ ES7/ES2016 κΈ°λ₯ μ 체λ₯Ό λμ΄νλ μ’μ λΈλ‘κ·Έ κ²μλ¬Όμ λλ€. http://www.2ality.com/2016/01/emascript-2016.html
http://kangax.github.io/compat-table/esnext/
async κΈ°λ₯μ ES2017 νμ€νμ 3λ¨κ³μ μμΌλ©° μμ§ 4λ¨κ³μ μμ§λ μμ§λ§ babelμ μ΄λ₯Ό μ§μνλ©° λ§€μ° λ©μ§κ³ μκ°μ μ μ½ν΄ μ€λλ€.
κ·Έλ€μ λν μ§μμ μνν κ³νμ λκΉ?
JSCS μ§μ -> http://jscs.info/rule/disallowSpacesInFunctionExpression
QAλ₯Ό μν΄ jshintμ jscsλ₯Ό μ¬μ©νκ³ μλλ° jshintκ° λ΄ νλ‘μ νΈμ babel w/async κΈ°λ₯ μ§μμ μΆκ°νλ κ²μ μ°¨λ¨νκ³ μμ΅λλ€.
λΉλκΈ° κΈ°λ₯μ ES2017 νμ€νμ 3λ¨κ³μ μμ΅λλ€.
μ΄ κΈ°λ₯μ ES2017 κΈ°νμ λμ³€μ΅λλ€. JSHintλ 2λ¨κ³ μ΄μμ μ§μνκΈ° μν΄ μ΅μ μ λ€νκ³ μμ§λ§ ꡬννλ €λ©΄ μΈμ μμκ³Ό μκ°μ΄ νμν©λλ€.
async
λ° await
λ μ΄μ μλ£ λμμΌλ©° ES2017 μ¬μμ μ΅μ μ΄μμ μμ΅λλ€.
μ΄μ ν¬λ‘¬κ³Ό νμ΄μ΄νμ€λ‘λ λ°°μ‘λ©λλ€. μ΄ λ¬Έμ λ₯Ό μ¬νκ°ν μ μμ΅λκΉ?
[μ λ°μ΄νΈ] μ μμ΄ μλ£λμμΌλ―λ‘ ES2017μ μ΅μ μ΄μμ λνλμΌ νμ§λ§ κ·Έλ μ§ μμ΅λλ€. κ·Έκ²μ΄ 무μμ μλ―Ένλμ§ νμ€νμ§ μμ΅λλ€.
[μ λ°μ΄νΈ2] μ! λ°©κΈ μ¬μμ λ³ν©λμμ΅λλ€. https://github.com/tc39/ecma262/pull/692
async
λ° await
λ μ΄μ Node 7.6μ μμ΅λλ€. μ΄κ²μ λν μ
λ°μ΄νΈκ° μμ΅λκΉ?
μ΄ λ¬Έμ λ κΈ°λ₯ μμ²μ μΆμ νκΈ° μν κ²°μ μ μΈ μμΉμ΄λ―λ‘ λ€μκ³Ό κ°μ κ²½μ°
μλ‘μ΄ μ λ³΄κ° μλ κ²½μ° μ¬κΈ°μμ μ°Ύμ μ μμ΅λλ€. νμκ² μ΅λκΉ?
λμμ£Όκ³ μΆμ΄?
μμ§ λκΈ°/λΉλκΈ°λ₯Ό μ§μνμ§ μμ΅λκΉ? μ¬νΌ...
@xduseko , JSHintλ λͺ¨λ μμ λ΄μ¬ κ·Έλ£Ήμ΄ μ μ§ κ΄λ¦¬νλ μ€ν μμ€ μννΈμ¨μ΄μ λλ€.
λꡬλ repoλ₯Ό λΆκΈ°νκ³ async/awaitλ₯Ό ꡬννκ³ ν μ€νΈμ ν¨κ» pull μμ²μ μ μΆν μ μμ΅λλ€. λλ ν΅μ¬ νμ΄ κ΅¬ννκΈ°μ μΆ©λΆν μμ μκ°μ μ°Ύμ λκΉμ§ λꡬλ κΈ°λ€λ¦΄ μ μμ΅λλ€.
κ·νμ μ견μ ν΅ν΄ 무μμ μ»μΌλ €κ³ νμ΅λκΉ?
@xduseko μ, μ½κ° μ¬νλ€λ λ° λμνμ§λ§ κ²°κ΅μλ κ±°κΈ°μ μκ² λ κ²μ
λλ€. μ λ μμ ν©λλ€. :crossed_fingers:
μ‘°κΈμ΄λΌλ λμμ΄ λλ€λ©΄ μ§κΈμ JSLintμλ μμ΅λλ€.
async/awaitκ° μκΈ° λλ¬Έμ ESLintλ‘ λ§μ΄κ·Έλ μ΄μ νλ €κ³ μλνμ§λ§ ν° λ²κ±°λ‘μμ΄ μμμ΅λλ€. κ²°κ΅ JSHintλ‘ λ€μ μ ννμ΅λλ€. λͺ¨λ λ¦°ν°(JSHintκ° μ¬μ ν μ΅κ³ λΌκ³ μκ°ν©λλ€)λ JavaScriptλ₯Ό μμ±ν λ μμ²λ κ°μΉλ₯Ό λνλ λλ€.
μ μ§λ΄κΈ° μν΄ IDEμμ κ°μ‘° νμλ async/await λ¬Έμ 무μνλλ‘ λμ νλ ¨νκ³ μμ΅λλ€. π
@semmel κ³Ό λ¬λ¦¬ λΉλκΈ°/λκΈ° μ€λ₯λ₯Ό 무μνλλ‘ λ΄ λμ νλ ¨ν μ μμ΅λλ€. μ¬μ€, async/awaitλ₯Ό μ¬μ©νκΈ° μ μ μ μΈλμ§ μμ λ³μλ₯Ό μ¬μ©νλ©΄ μ μΈλμ§ μμ λ³μμ λν μ€λ₯κ° νμλμ§ μκ³ μΌμ’ μ μ±κ°μ μΌμ λλ€.
JSHintκ° νμ¬ λΉλκΈ°/λκΈ° νλͺ©μ 무μνλλ‘ νλ λ°©λ²μ΄ μμ΅λκΉ?
μ΄λ₯Ό μ§μν©λλ€.
μ΄κ². μ΄λ€. λλΌμ΄.
expnt
μ§μ μ
λκΉ? κ·Έλ λ€λ©΄ exponent
λΌκ³ λΆλ¬λ λ κΉμ? Acrns dnt hlp unstdng.
expntλ μ§μμ λκΉ? κ·Έλ λ€λ©΄ μ§μλΌκ³ λΆλ¬λ λ κΉμ? Acrns dnt hlp unstdng.
@jugglinmike ^^
@mikemaccana μλν κ²μ
λλ€. μ§μ μ°μ°μμ λν "λΆμμ ν" μ§μμ΄ νμν μκΈ°λ μ§λ¬μ§λ§(λ€μ λ§μ΄λ 릴리μ€μμ esversion: 7
λ₯Ό ν΅ν΄ μ¬μ©ν μ μμ) νΉμ μ΅μ
μ΄ κ΅¬νλλ κ²μ κ²°μ½ λ³Ό μ μμ΅λλ€. κ·Έλλ μ‘°μΈμ μ λ€μμ΅λλ€. κ°μ¬ν©λλ€!
JSHint μΉ μ¬μ΄νΈλ₯Ό ν΅ν΄ μ ν¨μ±μ κ²μ¬νλ κ²½μ° νμ¬ κ°μ₯ μ°μν μ루μ
μ async
λ₯Ό /* async */
μ°Ύμμ λ°κΎΈλ κ² κ°μ΅λλ€.
@patrickdark κ·Έκ²μ gh-2604μ λν λΆλΆμ μΈ ν΄κ²° λ°©λ²μ΄μ§λ§ λΆννλ AwaitExpressionsλ₯Ό κ³ λ €νμ§ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
async
λ°await
λ μ΄μ Node 7.6μ μμ΅λλ€. μ΄κ²μ λν μ λ°μ΄νΈκ° μμ΅λκΉ?