Cli: [FEATURE] λͺ¨λ“  νŒ¨ν‚€μ§€μ— λŒ€ν•œ ꡬ성 ν‘œμ€€

에 λ§Œλ“  2020λ…„ 05μ›” 15일  Β·  2μ½”λ©˜νŠΈ  Β·  좜처: npm/cli

이것이 κ°€λŠ₯ν•œμ§€ λ˜λŠ” Node.js μ €μž₯μ†Œμ— μ†ν•˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

뭐? μ™œ

νŠΉμ • 쒅속성이 λͺ¨λ“  ν™˜κ²½μ—μ„œ μ œλŒ€λ‘œ μž‘λ™ν•˜λ €λ©΄ νŠΉμ • λΉŒλ“œ ꡬ성이 ν•„μš”ν•œ κ²½μš°κ°€ μ’…μ’… μžˆμŠ΅λ‹ˆλ‹€(예:).

이 ꡬ성은 Babel ꡬ성, Webpack ꡬ성 λ˜λŠ” ν•΄λ‹Ή νŒ¨ν‚€μ§€μ— λŒ€ν•œ μ‚¬μš©μž μ •μ˜κ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬λ‘œμ„œλŠ” νŒ¨ν‚€μ§€λ₯Ό κ΅¬μ„±ν•˜λŠ” ν‘œμ€€ν™”λœ 방법이 μ—†μŠ΅λ‹ˆλ‹€.

μ–΄λ–€ μ‚¬λžŒλ“€μ€ νŒ¨ν‚€μ§€ 이름을 λ”°μ„œ package.json ν•„λ“œλ₯Ό λ°°μΉ˜ν•˜κ³  νŒ¨ν‚€μ§€κ°€ 읽을 수 μžˆλŠ” κ·œμΉ™μ„ μ‚¬μš©ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 그것은 μΆ©λΆ„νžˆ ν‘œμ€€μ μΈ λŠλ‚Œμ΄ 듀지 μ•ŠμŠ΅λ‹ˆλ‹€.

μ–Έμ œ

νŒ¨ν‚€μ§€μ— λŸ°νƒ€μž„ λ˜λŠ” λΉŒλ“œ μ‹œκ°„μ— λŒ€ν•œ μ‚¬μš©μž 지정 ꡬ성이 ν•„μš”ν•œ 경우.

어디에

μ–΄λ–»κ²Œ

JavaScriptκ°€ νŠΉμ • κ²½μš°μ— λΉŒλ“œ 단계λ₯Ό ν•„μš”λ‘œ ν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. 이 ꡬ성 κΈ°λŠ₯μ—λŠ” λͺ¨λ“  νŒ¨ν‚€μ§€μ— 전달할 수 μžˆλŠ” 선택적 "λΉŒλ“œ 쒅속성" μ˜΅μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€(λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ„ λΉŒλ“œν•˜κ±°λ‚˜ JavaScriptλ₯Ό ν•˜μœ„ ν˜•μ‹μœΌλ‘œ λ³€ν™˜).

ꡬ성에 따라 νŒ¨ν‚€μ§€μ—λŠ” ν•„μš”ν•˜μ§€ μ•Šμ€ νŠΉμ • 쒅속성이 ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€(fe λΉŒλ“œ 쒅속성).

λ”°λΌμ„œ νŒ¨ν‚€μ§€ μ‹œμŠ€ν…œμ€ μ‚¬μš©μžκ°€ νŠΉμ • νŒ¨ν‚€μ§€ ꡬ성을 가지고 μžˆλŠ” 경우 μ„€μΉ˜ν•  μΆ”κ°€ 쒅속성을 κ²°μ •ν•  수 μžˆλ‹€λŠ” μ μ—μ„œ μΆ©λΆ„νžˆ λ˜‘λ˜‘ν•  κ²ƒμž…λ‹ˆλ‹€.

μ•„λ§ˆλ„ 이 κΈ°λŠ₯은 κΈ°μ‘΄ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆ μ‹œμŠ€ν…œμ—μ„œ 전체 JavaScript μ‹œμŠ€ν…œμœΌλ‘œ ν™•μž₯λ˜μ–΄μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€(μ‚¬μš©ν•˜κΈ° μ‰¬μš΄ λ°©μ‹μœΌλ‘œ λ„€μ΄ν‹°λΈŒ λͺ¨λ“ˆμ€ κΉŒλ‹€λ‘­μŠ΅λ‹ˆλ‹€).

μ΄λŠ” 선택적 쒅속성과 같은 κ²½μš°μ—λ„ 맀우 μœ μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그것은 μ§€μ •ν•˜λ €λ©΄ μ„€μ •μœΌλ‘œ, μ‰¬μš΄ κ²ƒμž…λ‹ˆλ‹€ κ·Έ (예λ₯Ό λ“€μ–΄) 라이브러리λ₯Ό μ‚¬μš© three λŒ€μ‹  babylonjs . 그러면 μ μ ˆν•œ 쒅속성이 μ„€μΉ˜λ©λ‹ˆλ‹€. ν”Όμ–΄ 쒅속성과 λΉ„μŠ·ν•˜μ§€λ§Œ 더 쉽고 선택적 deps에 μ˜μ‘΄ν•˜λŠ” 주어진 νŒ¨ν‚€μ§€μ—λŠ” νŠΉμ • 쑰건이 μ§€μ •λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό κ²°μ •ν•˜κΈ° μœ„ν•΄ ꡬ성 API에 μ•ˆμ •μ μœΌλ‘œ μ•‘μ„ΈμŠ€ν•˜λŠ” ν‘œμ€€ 방법이 μžˆμŠ΅λ‹ˆλ‹€(ν˜„μž¬λ‘œμ„œλŠ” κΉŒλ‹€λ‘­κ³  node_modules의 λͺ¨λ“  낭포 μˆœνšŒλŠ” 이 경우 ν‘œμ€€).

ν˜„μž¬ 행동

  • ν•΄λ‹Ή μ—†μŒ

μ˜ˆμƒλ˜λŠ” λ™μž‘

  • 높은 μˆ˜μ€€μ—μ„œ μœ„μ˜ λ‚΄μš©μ„ λ‹€λ£Ήλ‹ˆλ‹€.

또 λ‹€λ₯Έ 예둜, λ•Œλ•Œλ‘œ νŒ¨ν‚€μ§€ μ†ŒλΉ„μžλŠ” λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μ»΄νŒŒμΌν•˜κΈ° μœ„ν•΄ 일반적인 컴파일된 좜λ ₯ λŒ€μ‹  νŒ¨ν‚€μ§€ μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

일반적으둜 NPM이 μ§€κΈˆκΉŒμ§€ 일반적인 처리 방법을 μ œκ³΅ν•˜μ§€ μ•ŠλŠ” 그런 μ’…λ₯˜μ˜ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λˆ„κ΅¬

νŒ¨ν‚€μ§€ μž‘μ„±μž 및 ν•΄λ‹Ή μ‚¬μš©μž

μ°Έκ³ λ¬Έν—Œ

  • ν•΄λ‹Ή μ—†μŒ
Enhancement

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

이 κΈ°λŠ₯은 λ•Œλ•Œλ‘œ κ°œλ°œμžκ°€ μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 λ§Žμ€ 어렀움에 μ§λ©΄ν•˜κΈ° λ•Œλ¬Έμ— λ†€λžμŠ΅λ‹ˆλ‹€.

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

이 κΈ°λŠ₯을 톡해 νŒ¨ν‚€μ§€ μž‘μ„±μžλŠ” ν‘œμ€€ λ°©μ‹μœΌλ‘œ νŒ¨ν‚€μ§€μ— κΈ°λŠ₯을 μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ "였, CSSλ₯Ό 일반 νŒ¨ν‚€μ§€ νŒŒμΌμ— λ‚΄μž₯ν•˜λŠ” λŒ€μ‹  외뢀에 μΆ”κ°€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. 문제 μ—†μŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ ꡬ성에 μ΄λŸ¬ν•œ μ˜΅μ…˜μ΄ 있으면 이 νŒ¨ν‚€μ§€λŠ” 좜λ ₯μ—μ„œ ​​λͺ¨λ“  CSSλ₯Ό μžλ™μœΌλ‘œ μ œμ™Έν•©λ‹ˆλ‹€." 그런 λ‹€μŒ ν•΄λ‹Ή ν‘œμ€€ ꡬ성이 주어지면 νŒ¨ν‚€μ§€ μž‘μ„±μžλŠ” Webpack, Babel λ˜λŠ” μ›ν•˜λŠ” 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ˜λ―Έμ—μ„œ λͺ¨λ“  νŒ¨ν‚€μ§€μ—λŠ” μ‚¬μš©μžκ°€ μ˜΅μ…˜μ„ 전달할 수 μžˆλŠ” λͺ‡ 가지 ν‘œμ€€ 방법이 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ˜΅μ…˜μ€ νŒ¨ν‚€μ§€κ°€ μ‚¬μš©ν•˜λŠ” μ†ŒμŠ€ νŒŒμΌμ΄λ‚˜ λΉŒλ“œ 도ꡬ에 관계없이 λŒ€μ²΄ 쒅속성 μ„ΈνŠΈ λ˜λŠ” λΉŒλ“œ 단계λ₯Ό μ§€μ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš©μž μΈ‘ ꡬ성이 μžˆμ§€λ§Œ μ΄λŸ¬ν•œ μ˜΅μ…˜μ€ νŒ¨ν‚€μ§€ μΈ‘ ꡬ성에 λ§€ν•‘λ˜μ–΄ μ„€μΉ˜ 쀑 μ‹€ν–‰λ˜κ±°λ‚˜ μœ μ‚¬ν•œ 쒅속성(λ”°λΌμ„œ λΉŒλ“œ 도ꡬ)이 μ§€μ •λ©λ‹ˆλ‹€.

λŒ€λΆ€λΆ„μ˜ νŒ¨ν‚€μ§€κ°€ κΈ°λ³Έ μ†ŒμŠ€ μ½”λ“œ 좜λ ₯을 μ œκ³΅ν•˜κ³  일뢀 μ‚¬μš©μžκ°€ 이λ₯Ό μ‚¬μš©μž μ§€μ •ν•˜λŠ” 것을 λ³Ό 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

μ„ μ–Έ νŒŒμΌμ— μ˜ν•΄ μ œν•œλ˜μ§€ μ•ŠλŠ” 전체 κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ TypeScript μ†ŒμŠ€ μ½”λ“œλ₯Ό μ»΄νŒŒμΌν•˜λŠ” κ°€μž₯ 쒋은 방법은 μ›μ‹œ TypeScript μ†ŒμŠ€ μ½”λ“œλ₯Ό μ œκ³΅ν•˜κ³  μ†ŒλΉ„μž μΈ‘μ—μ„œ λ³€ν™˜ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. ꡬ성 κ·œμΉ™μ΄ 이에 크게 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

TypeScriptλŠ” μ†ŒλΉ„μžκ°€ TypeScript μ†ŒμŠ€λ₯Ό λ³€ν™˜ν•΄μ„œλŠ” μ•ˆ λœλ‹€κ³  μ„ μ–Έν•˜μ§€λ§Œ, μ—°κ²°λœ 문제둜 인해 ν•„μˆ˜κ°€ 될 수 μžˆλŠ” ꡬ멍을 νŒ μŠ΅λ‹ˆλ‹€. ꡬ성 ν‘œμ€€μ΄ μœ μš©ν•  수 μžˆλŠ” ν•œ 가지 예둜만 μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

이 κΈ°λŠ₯은 λ•Œλ•Œλ‘œ κ°œλ°œμžκ°€ μ΄λŸ¬ν•œ μ’…λ₯˜μ˜ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 λ§Žμ€ 어렀움에 μ§λ©΄ν•˜κΈ° λ•Œλ¬Έμ— λ†€λžμŠ΅λ‹ˆλ‹€.

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