μ§λ¬ΈνκΈ° μ μ: μ, κ²μνμ¬ #6334λ₯Ό μ°Ύμμ΅λλ€. νμ§λ§ μ΄κ²μ΄ μ λ¬Έμ λ₯Ό ν΄κ²°νμ§λ λͺ»ν©λλ€.
Webpackμ μ¬μ©νλ μΉ μμ© νλ‘κ·Έλ¨μ μμ± μ€μ
λλ€. κ²°κ³Όμ μΌλ‘ νλ°νΈ μλμμ webpack-env.d.ts
μ μ‘μΈμ€ν΄μΌ νμ§λ§ Nodeμμ url
λͺ¨λμ μ¬μ©νλ λ°λ κ΄μ¬μ΄ μμ΅λλ€( url.parse
). λμΌν μ°Έμ‘° νμΌμ webpack-env.d.ts
λ° node.d.ts
κ° νμν κ²½μ° Nodeκ° require
μ¬μ μνκΈ° λλ¬Έμ μμλλ‘ μ€λ¨λ©λλ€. IOW, node.d.ts
μ url
λͺ¨λκ³Ό webpackμ require
μ μμ μ‘μΈμ€ν΄μΌ ν©λλ€.
const url: any = require('url')
λ₯Ό μ¬μ©νμ¬ μ΄ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ§λ§ μ΄λ μ΄μμ μ΄μ§ μμΌλ©° μ΄ λͺ¨λμ λν μ
λ ₯μ μν©λλ€. λ λ€λ₯Έ μ΅μ
μ node.d.ts
λ₯Ό κ΅¬μ± λͺ¨λλ‘ λΆν νκ³ λ§μ€ν° node.d.ts
κ° κ° κ°λ³ λͺ¨λμ μꡬνλλ‘ νλ κ²μ
λλ€. TypeScript μ μΈ νμΌ - νΉν λ‘컬μμ ν¨κ» ν΄νΉνκ³ μΆμ§ μμ΅λλ€.
μ΄λ€ μ μ?
κΈμ, κΈ°μ μ μΌλ‘ λΉμ μ μμ§ λ Έλ νκ²½μ μμ§ μμΌλ©° μ 체 node.d.ts νμΌμ ν¬ν¨νλ κ²μ μ³μ§ μμ΅λλ€. λ Έλμ "url"κ³Ό λμΌνκ² μλνμ§λ§ λΈλΌμ°μ νκ²½μμ μλνλ npm ν¨ν€μ§λ₯Ό μ¬μ©νκ³ μμ΅λλ€. λΉμ μ΄ ν μ μλ μΌμ node.d.tsμμ ν΄λΉ νμ΄νμ μΆμΆνκ³ μ΄λ―Έ μ μν κ²μ²λΌ λ³λμ url.d.tsλ₯Ό κ°λ κ²μ λλ€. node.d.tsλ₯Ό λ μμ λͺ¨λλ‘ λΆν νλ κ²μ λͺ¨λ μꡬμ μ ν©νμ§ μμ μ μμ΅λλ€. νκ²½ μ°¨μ΄(λ²νΌ λ λ°°μ΄) λλ ꡬνμΌλ‘ μΈν΄ μλͺ μ΄ λ€λ₯Ό μ μκΈ° λλ¬Έμ λλ€. μ΄ "url" ν¨ν€μ§μ λν΄ λ 립μ μΈ μ λ ₯μ μ μν©λλ€.
λͺ¨λ νμ΄νμ ν¬ν¨νκΈ° μν΄ include typings/index.ts
in my tsconfig.json
λ₯Ό μ¬μ©νλ κ²κ³Ό λμΌν λ¬Έμ κ° λ°μνμ΅λλ€. webpack-env.d.ts
μ node
λͺ¨λ μΆκ°ν λ typescript μ»΄νμΌλ¬λ λΆλͺ
ν λΆνν©λλ€. μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ λ°©λ²μ΄ μμ΅λκΉ?
test_index.ts(1,28): error TS2339: Property 'context' does not exist on type 'NodeRequire'.
λ΄κ° "ν΄κ²°"ν λ°©λ²μ μ¬μ©νλ €λ λ Έλλ³ λͺ¨λμ λν΄ λ³λμ νμ΄ν νμΌμ λ§λλ κ²μ΄μμ΅λλ€. λΆννλ μ½κ°μ ν΄νΉ.
μ 체 νλ‘μ νΈμμ ν λ²λ§ μ λ ₯νλ©΄ λμκΈ° λλ¬Έμ webpack-envλ₯Ό μμ ν μ κ±°νμ΅λλ€. ν¬λ§μ κ·Έλλ‘ μ μ§λ©λλ€. κ·νμ μ루μ μ μλνμ§λ§ κ°λ₯ν ν μ°Έμ‘°λ‘ λ΄ νμΌμ μ€μΌμν€λ κ²μ μ’μνμ§ μμ΅λλ€. λ΅μ₯μ λ³΄λ΄ μ£Όμ μ κ°μ¬ν©λλ€
Saurabh Sharma / νμ§ μμ§λμ΄λ§
[email protected] / (925)-878-5722
μΌλ¨Έ, λ§μ΄ν¬λ‘μννΈ
http://www.foklepoint.com
2016λ 8μ 14μΌ μ€μ 7μ 88λΆμ Dan [email protected]μ΄ λ€μκ³Ό κ°μ΄ μΌμ΅λλ€.
λ΄κ° "ν΄κ²°"ν λ°©λ²μ μ¬μ©νλ €λ λ Έλλ³ λͺ¨λμ λν΄ λ³λμ νμ΄ν νμΌμ λ§λλ κ²μ΄μμ΅λλ€. λΆννλ μ½κ°μ ν΄νΉ.
β
λΉμ μ΄ λκΈμ λ¬μκΈ° λλ¬Έμ μ΄κ²μ λ°λ κ²μ λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHubμμ 보거λ μ€λ λλ₯Ό μμκ±°νμΈμ.
λ¬Όλ‘ μ λ λ§μ°¬κ°μ§μ λλ€ :( νμ§λ§ μ¬νκ²λ κ·Έ λͺ¨λμ΄ νμνμ΅λλ€. @foklepoint
νμ§λ§ @types/node
κ° λ€λ₯Έ μ’
μμ±(μ: fs-extra
, jsdom
, shelljs
, tape
)μ μ’
μμ±μ΄λ©΄ μ΄λ»κ² λ κΉμ?
λν webpack-env
μ κ±°νκ³
if ((module as any).hot) {
...
π’
κ°μ₯ μ μ©ν λκΈ
νμ§λ§
@types/node
κ° λ€λ₯Έ μ’ μμ±(μ:fs-extra
,jsdom
,shelljs
,tape
)μ μ’ μμ±μ΄λ©΄ μ΄λ»κ² λ κΉμ?λν
webpack-env
μ κ±°νκ³π’