μλ
νμΈμ! νλ‘μ νΈ λΉ μ¬λ¬ κ°μ tsconfig.json
λ₯Ό μ¬μ©ν μ μμ΅λκΉ? μ¦, λ£¨νΈ λλ ν°λ¦¬μμλ μΌμ’
μ νλ‘μ νΈ μ 체 tsconfig.json
λ° μ¬μ μ ν μμλ νμ λλ ν°λ¦¬μμλ μΆκ° tsconfig.json
νμΌμ μ¬μ©ν μ μμ΅λκΉ? / κ·Έ dirsμ λν λͺ κ°μ§ μ΅μ
μ μ‘°μ νμκ² μ΅λκΉ? .gitignore
μ²λΌ.
μλ₯Ό λ€μ΄ node
-νκ²½μμ μΈλΆ λͺ¨λμ κ°λ°ν λ λ§€μ° μ μ©ν©λλ€. μ΄λ¬ν λͺ¨λμ μΌλ°μ μΌλ‘ μ¬λ¬ νμΌ (λ΄λΆ λͺ¨λ)λ‘ λΆν λμ§λ§ μ»΄νμΌ λ¨κ³μμ νλμ ν° νμΌλ‘ μ»΄νμΌλ©λλ€.
μλ νμΈμ @lazutkin. νμ¬λ μ§μλμ§ μμ§λ§ μ½κ° κ΄λ ¨μ΄ μμΌλ―λ‘μ΄ λ¬Έμ λ₯Ό # 2869μ μ°κ²°νκ³ μΆμ΅λλ€.
μ»΄νμΌλ¬λ ν΄λμ μΈμμμ΄ tsc
λ₯Ό μ€ννλ κ²½μ° λΉλμ€μΈ ν΄λμ κ°μ₯ κ°κΉμ΄ tsconfig.jsonμ μ νν©λλ€. λ°λΌμ tsconfig.jsonμ΄μλ λ΄λΆ λλ ν°λ¦¬κ°μλ κ²½μ° μΈλΆ λλ ν°λ¦¬μμλ λλ ν°λ¦¬λ³΄λ€ λ¨Όμ μ νλ©λλ€.
μ¬λ¬ tsconfig.jsonμμ ν΅ν© / μ€λ² λΌμ΄λ© ꡬμ±μ μ§μνμ§ μμ κ²μ΄λΌκ³ μκ°ν©λλ€.
λκ·λͺ¨ μν°νλΌμ΄μ¦ μ±μλ μ¬λ¬ tsconfig νμΌμ΄ νμμ
λλ€.
μ μ : tscκ° νμ λλ ν 리μμ μ tsconfig νμΌμ μ°Ύμ λλ§λ€ tscλ μ¬κΈ°μμ μ€μ§νκ³ μ체 tsconfig νμΌμ μ¬μ©νμ¬ μ tsc νλ‘μΈμ€λ₯Ό λ§λλλ€.
@Eisenspalter μ΄κ²μ grunt,
λ΄κ° @Eisenspalterμ λμ @mhegazy μ²λ¦¬νμ§ κ΅¬μΆμ λννμ§λ§ μ°λ¦¬λ λΉλ μ μ μλ£ν΄μΌ, μ°κΈ° ν
μ€νΈ μμ€ λ° κΈ°ν νλμ ν¬ν¨νμ¬ κ°λ° νλ‘μΈμ€μ λν μ°λ¦¬ λͺ¨λκ° μ΄μΌκΈ° λλ¬Έμ΄λ€. μ΄ λͺ¨λ μ€κ° λ¨κ³μμ μ°λ¦¬λ intellisense, typechecking λ±μ ν¬ν¨νμ¬ typescript
μ§μμ λ°μμΌν©λλ€. λν μμ λ§νλ―μ΄ νλ‘μ νΈμ λ€λ₯Έ λΆλΆμ λν΄ λ€λ₯Έ μμ€ κ΅¬μ± κΈ°μ (μΈλΆ-λ΄λΆ λͺ¨λ, λ¨μΌ μΆλ ₯ νμΌ λ±) μ¬κΈ°μ λ³λμ tsconfigλ‘ μ¬μ μ ν λͺ κ°μ§ μ΅μ
μ΄ νμν©λλ€.
@mhegazy μ λ«νμ΅λκΉ? λ€μμ¬μμμ€.
μ€λμ μ¬λ¬ κ°μ tsconfigλ₯Ό κ°μ§ μ μμΌλ©°, κ°κ° κ²ΉμΉλ νμΌ μΈνΈλ₯Ό κ°λ¦¬ ν΅λλ€. κ·Έλμ νλλ srctsconfig.json, νλλ teststsconfig.json λ±μ μμ΅λλ€. μ»΄νμΌλ¬ / λꡬλ κ°μ₯ κ°κΉμ΄ κ²μ μ°ΎκΈ° μν΄ λλ ν 리 νΈλ¦¬λ₯Ό νμνμ¬ νμΌμ μ°Ύμ΅λλ€. κ·Έλμ λΉμ μ λͺ¨λ κ²μ μ‘κΈ° μν΄ λ£¨νΈμ μΈ λ²μ§Έ νμΌμ κ°μ§ μ μμ΅λλ€.
μ΄ λͺ¨λ κ²μ΄ μ€λλ μ»΄νμΌλ¬μ λ€λ₯Έ IDEμμ μλν©λλ€. μλ λ¬Έμ λ νμΌμ΄ λ€λ₯Έ νμΌμμ μμλλλ‘ νμ©νλ κ²μ΄ μμ΅λλ€. λλ 볡μ‘μ±μ μ λΉννλ μΆ©λΆν κ°μΉκ° μλ€κ³ μκ°νμ§ μμ΅λλ€.
λ λ²μ§Έ λ¬Έμ :
tscκ° νμ λλ ν 리μμ μ tsconfig νμΌμ μ°Ύμ λλ§λ€ tscλ μ¬κΈ°μμ μ€μ§νκ³ μ체 tsconfig νμΌμ μ¬μ©νμ¬ μ tsc νλ‘μΈμ€λ₯Ό λ§λλλ€.
μμ μΈκΈνλ―μ΄ tsconfig.jsonμ λΉλ λλΌμ΄λ²λ₯Ό μ¬μ©ν΄μΌνλ μ¬λ¬ νΈμΆμ μννλ €λ κ²½μ° tsc.js / tsc.exeμ λν λ¨μΌ νΈμΆμ λνλ λλ€.
@lazutkin κ³Ό @Eisenspalter κ° μ§λ¬Έμ λ΅ν©λλ€.
νν
μ¬λ¬ tsconfig.jsonμ΄ μλνλλ‘ ν μ μμ΅λλ€. μ μ΄λ TypeScript 1.7.3μμλ νλμ tsconfig.json λ§ μ½κ³ νλ‘μ νΈμ λ£¨νΈ λλ ν 리 (λλ μμ)μμμ κ²μΌλ‘ μμλ©λλ€.
@Ziink μμ λ΄ μ견μ λμΌν νλ‘μ νΈμ μ¬λ¬ tsconfigμ κ΄ν κ²μ΄ μλλλ€. κ°κ° λ€λ₯Έ tsconfigλ₯Ό κ°μ§ μ¬λ¬ νλ‘μ νΈ / λλ ν 리μ κ΄ν κ²μ΄ μμ΅λλ€. ts νλ‘μ νΈκ° λ°°μΉλλ λ°©λ²μ https://github.com/Microsoft/TypeScript/tree/master/srcλ₯Ό μ°Έμ‘°
TypeScriptλ‘ μμ±λ νλ‘μ νΈκ° μμΌλ©° λ λ€ λμμΌλ‘ μ§μ νκ³ μΆμ΅λλ€.
/browser
)server
νμΌ).( /common
) ν΄λμ μΌλΆ 곡μ νμΌμ΄ μκ³ common
μμ browser
λ° server
λ‘ κ°μ Έ μ€κΈ°κ° μμ΅λλ€.
IDE μ§μ, λͺ¨λ μ€λ₯ λ±μ μ μ§νλ©΄μ μ΄λ¬ν ꡬμ±μ μ΄λ»κ² μ»μ μ μμ΅λκΉ? ν λ‘ μ΄ λ΄ μμ¬μ λν λ΅μ΄λμλμ§ νμ€νμ§ μμ΅λλ€.
@bartq TS 1.8μμλ λ κ°μ tsconfig νμΌ (λΈλΌμ°μ μ©, μλ²μ©)μ λ§λ€κ³ λ νμ νλ‘μ νΈμ νμΌμ /// referencesλ₯Ό κ³΅ν΅ νμΌμ μΆκ°ν©λλ€. μλν΄λ³΄κ³ μ΄κ²μ΄ μλ리μ€λ₯Ό ν΄κ²°νλμ§ λλ μ¬μ ν λλ½ λ λΆλΆμ΄ μλμ§ μλ €μ£Όμμμ€.
μ€μ λ‘ μ λμ΄ λ κ°μ tsconfig.json
νμΌμ μ¬μ©νκ³ μλλ° WebStormμ΄ νμΌμ λ°κ²¬νκ³ μλμΌλ‘ μ»΄νμΌμ μ€νν©λλ€. μ νν λ§νλ©΄ λ°±μλ μ½λλ common
κ°λ
μ μ¬μ©νλ λμ νλ°νΈ μλ μ½λμμ μΌλΆ ν΄λμ€λ₯Ό κ°μ Έ μ€μ§λ§ λͺ¨λ μ λλ‘ μλν©λλ€.
λ§μΉ¨λ΄ ν΄κ²°μ± μ μ»μμ΅λλ€.
λ΄ μμ© νλ‘κ·Έλ¨ κ΅¬μ‘° :
-- μ±/-app / client / (λ΄ ν΄λΌμ΄μΈνΈ μΈ‘ μμ€ μ½λ)-app / server / (λ΄ μλ² μΈ‘ μμ€ μ½λ)-app / build / (μ¬κΈ°μ jsλ₯Ό μμ±ν©λλ€)-μ± / λ
Έλ λͺ¨λ /-app / package.json-app / tsconfig.server.json-app / tsconfig.client.json
tsconfig.server.jsonμ λ΄μ© :
{ "compilerOptions": {..., "outDir": _ "build / server"_},"exclude": [ "node_modules", "client"]}
tsconfig.client.jsonμ λ΄μ© :
{ "compilerOptions": {..., "outDir": "λΉλ / ν΄λΌμ΄μΈνΈ"},"exclude": [ "node_modules", "server"]}
κ·Έλ° λ€μ μλ² μμ€ μ½λλ₯Ό μ»΄νμΌνλ €λ©΄ μ± λ£¨νΈ λλ ν 리μμ λ€μ λͺ λ Ήμ μ¬μ©ν©λλ€.
λν λ£¨νΈ μ± λλ ν 리μμ ν΄λΌμ΄μΈνΈ μμ€ μ½λλ₯Ό μ»΄νμΌνλ €λ©΄ λ€μμ μννμμμ€.
ν΄λΌμ΄μΈνΈ λ° μλ² μ»΄νμΌμ λͺ¨λ μ€ννκΈ° μν΄ package.jsonμ λͺ λ Ήμ μΆκ°νμ΅λλ€.
"μ€ν¬λ¦½νΈ": {..., "tsc": "tsc --p tsconfig.server.json && tsc --p tsconfig.client.json", ...}
κ·Έλ° λ€μ μλ²μ ν΄λΌμ΄μΈνΈλ₯Ό λͺ¨λ μ»΄νμΌνλ €λ©΄ λ£¨νΈ μ± λλ ν 리μμ μ€νν©λλ€.
μ΄ μκ²¬μ΄ λΉμ μ λμΈ μ μκΈ°λ₯Ό λ°λλλ€ :-)
λλ μ¬κΈ°μ λ¬Έμ κ° λ¬΄μμΈμ§ μ΄ν΄νμ§ λͺ»νλ€. νμΌ μ΄λ¦μ΄ λ€λ₯Έ ꡬμ±μ μ§μν μμλ μ΄μ λ 무μμ λκΉ? λ€λ₯Έ tsconfig νμΌμ ν¬ν¨νκΈ° μν΄ νμ ν΄λλ₯Ό λ§λλ κ²μ κ³ ν΅ μ€λ½μ΅λλ€.
ν μ μμ΅λλ€. --p μΈμ caλ νμΌ μ΄λ¦μ λλ€.
λ€λ₯Έ νμΌ μ΄λ¦μ κΈ°λ³Έμ μΌλ‘ Visual Studio typescript μ»΄νμΌλ¬ νμ₯ (CLIμ λν΄ μΈκΈνμ§ μμ)μμ μλνμ§ μμ΅λλ€. μ΄λ₯Ό μννλ μ μΌν λ°©λ²μ κ° tsconfig.jsonμ λλ―Έ λλ ν 리μ λ£κ³ files
μ΅μ
μ μ¬μ©νμ¬ μνλ νμ΄ν μ€ν¬λ¦½νΈλ‘ λ€μ λ§ν¬νλ κ²μ
λλ€.
μλ₯Ό λ€λ©΄
--src / target / search / tsconfig.json
--src / target / core / tsconfig.json
--src / target / users / tsconfig.json
target / search / tsconfig.json μ λ€μκ³Ό κ°μ΅λλ€.
{
"compilerOptions": {
"outFile": "../../../build/app/search.js"
},
"files": [
"../../src/common",
"../../src/search"
]
}
κ·Έλ¦¬κ³ λ€λ₯Έ κ²λ€μ λΉμ·ν κ²μ λλ€.
μ΄λ κ²νλ©΄ 3 κ°μ μλ° μ€ν¬λ¦½νΈ νμΌμ΄ μμ±λλ©°, κ° νμΌμλ κ³ μ ν ꡬμ±μ΄ νλλ‘ λ¬Άμ¬ μμ΅λλ€.
λ¬Όλ‘ Typescript μ»΄νμΌλ¬ μ체μ λ€λ₯Έ λ²λ€λ§ / μ΅μν / ν¨ν€μ§ μ루μ μ μ¬μ©ν μ μμ΅λλ€.
Typescript μ»΄νμΌλ¬κ° μ΅μ ν μμ μ μ λ§ μ μννλ€λ κ²λΏμ λλ€. μ΄κ²μ΄ Typescript μ¬μ©μ κ°μ₯ ν° μ₯μ μ€ νλμ λλ€.
λ°λΌμ λ¨μΌ tsconfig.jsonμ΄ tsconfigμ λ°°μ΄λ‘ λ³κ²½νμ¬ μ¬λ¬ ꡬμ±μ μ§μν μ μλ€λ©΄ μ’μ κ²μ λλ€.
[
{
"compilerOptions": {
"outFile": "../../build/search.js"
},
"files": [
"src/common",
"src/search"
],
"compileOnSave": true
},
{
"compilerOptions": {
"outFile": "../../build/core.js"
}
"files": [
"src/common",
"src/core"
],
"compileOnSave": true
}
]
μ΄κ²μ΄μ΄ λ¬Έμ μ μ΄ν μ견μμ μμ² λ κ²μ²λΌ λ€λ¦¬μ§λ§, μλ λ¬Έμ λ μμ λ° κ΅¬μ± μ¬μ μμ κ΄ν κ²μ΄ μμ΅λλ€.
@mhegazy @bartq tsc
λͺ
λ ΉμΌλ‘ μλμν¬ μ μμ΅λλ€.
λ€μκ³Ό κ°μ λλ ν 리 κ΅¬μ‘°κ° μμ΅λλ€.
-- app/
-- app/server -- here I want es6/commonjs
-- app/server/tsconfig.json
-- app/client -- here I want es6/es6
-- app/client/tsconfig.json
-- app/tsconfig.json
κ·Έλ¬λ tsc
μ€ννλ©΄ app/tsconfig.json
λ§ μ¬μ©λλ©° λλ¨Έμ§λ 무μλ©λλ€. VSCodeμμ μλνλλ‘ λ
Έλ ₯νκ³ μμ΅λλ€.
@tomitrescak μ λ WebStormμ μ¬μ©νκ³ μμΌλ©° κ°μ₯ κ°κΉμ΄ tsconfig.jsonμ μ°Ύμμ νμΌμ νΈμ§ ν λ μ¬μ©ν μμμλ§νΌ μ§λ₯μ μ λλ€. μλ§λ μ¬λ¬ tsconfig.jsonμ κ°μλ₯Ό μ§μνλ cmd λκ΅¬κ° μμ κ²μ λλ€. μλ₯Ό λ€μ΄ FB μμΉ λ§¨μ μ¬μ©νμ¬ λ‘€μμ ν μ μμ΅λλ€.
μ, VS μ½λμμ μ΄μ κ°μ κ²μ κ°κ³ μΆμ΅λλ€. ν°λ―Έλμμ μ»΄νμΌμ μ€ννκ³ μμ΅λλ€. μ μλν©λλ€. VS Codeλ μ΄μ¨λ μ€λ₯λ₯Ό μ¬λ°λ₯΄κ² μλ³ν©λλ€.
μ¬λ¬ ꡬμ±μ΄ μ’μ κ²μ λλ€. μ λ React-Native νλ‘μ νΈμμ μΌνκ³ μμΌλ©° κΈ°λ³Έμ μΌλ‘ λ κ°μ§ λΉλκ° μμ΅λλ€.
κ΅¬μ± μμμ΄ TS 2.1μ μΆκ°λμμΌλ©° μ€λ typescript@next
μμ μ¬μ©ν μ μμ΅λλ€. μμΈν λ΄μ©μ https://github.com/Microsoft/TypeScript/issues/9876 μ μ°Έμ‘°νμμμ€. μ΄λ₯Ό ν΅ν΄ "λ§μ€ν°"tsconfig.jsonμ κ°μ§ μ μμΌλ©° μ¬κΈ°μμ ꡬμ±μ μμνλ κ²μ μ¬μ μ ν μ μμ΅λλ€. μ¬μ ν μ¬λ¬ tsconfig.json νμΌμ λ§λ€μ΄μΌνμ§λ§ IDEμμμ΄ νμΌμ μ νν΄μΌν©λλ€.
λ€μ λλ ν°λ¦¬ κ΅¬μ‘°κ° μμ΅λλ€.
βββ examples
β βββ files...
β βββ tsconfig.json
βββ src
β βββfiles...
βββ tsconfig.json
λ£¨νΈ tsconfig.json
:
{
"compilerOptions": {
"target": "es2015",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "dist",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"declaration": true,
"allowJs": false
},
"include": [
"./src"
],
"compileOnSave": false,
"buildOnSave": false,
"atom": { "rewriteTsconfig": false }
}
examples/tsconfig.json
κ°μ λ€μμ μ μΈνκ³ λμΌν©λλ€.
"include": [
"./hello-world"
],
λ΄κ° ν λ :
cd examples
tsc
λ€μμ μ»΄νμΌν©λλ€.
βββ examples
β βββ dist
β β βββ examples
β β βββ src
β βββ files...
β βββ tsconfig.json
βββ src
β βββ files...
βββ tsconfig.json
( dist
μλͺ»λ μΈλΆ ν΄λ src
λ° λ£¨νΈ ν΄λ λ΄μμ μ»΄νμΌ λ¨)
λμ μ ν¨ ( examples/tsconfig.json
) :
"exclude": [
"../src"
],
λ΄κ° λλ체 ββλ μλͺ»νκ³ μλ κ²λκΉ?
λ¬Έμ λ₯Ό λ°κ²¬νμ΅λλ€. λ΄ examples/hello-world/any-file*.ts
μμ΄ κ°μ Έ μ€κΈ° :
import { SomeClass } from '../../src';
μμ λ¬Έμ μ μ€λͺ λ μμ°λ¬Όμ λλ€. λ€μ κ°μ Έ μ€κΈ°κ° μμλλ‘ μλν©λλ€.
import { SomeClass } from '../../';
κ·Έλ¬λ typescriptμ μ§μλ¬Έ include
κ° μμλλ‘ μλνμ§ μλ μ΄μ λ 무μμ
λκΉ?
λλ κ·Έκ²μ μλμν¬ μ μλ€
λμΌν ν΄λμ tsconfig.jsonμ΄ μμ§λ§ " κ²½κ³ : μμ tsconfig.jsonμ μ°Ύμ
@zhukovka λ‘컬μμ μ€νν μμλ λ 립 μ€ν ν μ¬νμΌλ‘ μ λ¬Έμ λ₯Ό κΈ°λ‘ν΄μ£ΌμΈμ.
@RyanCavanaugh μ€. κ³ λ§μ, μμ λμ΄
λ¬Έμ λ ν
μ€νΈ ν΄λ (tsconfig.json ν¬ν¨λμ§ μμ)μμ νλμ νμΌμ μ΄κ³ 'src'ν΄λ (tsconfig.json ν¬ν¨)μμ λ λ²μ§Έ νμΌμ μ° κ²½μ°μλ§ μ¬νλ©λλ€.
ν
μ€νΈ ν΄λμ νμΌμ src ν΄λμ νμΌμ κ°μ Έμ΅λλ€. μ΄ κ²½μ° src ν΄λμ νμΌμλ 'λΆλͺ¨ tsconfig.json'μ΄ νμλμ§ μμ΅λλ€.
@RyanCavanaugh, μ¬λ¬ κ°μ§ tsconfig.jsonμ μ»΄νμΌμ λν μ§μμνκ³ μΆμ κ²μ κ°λ°μκ° λ κ³μν κ²μΌλ‘ 보μΈλ€. μ κ²½μ°μλ μΌλ°μ μΌλ‘ μμ± λ μΆλ ₯ νμΌμ μμΉλ₯Ό ββλ³κ²½νλ κ²μ
λλ€. μ½λ μμ±μ΄ κΈ°μ‘΄ paths
맀νκ³Ό κ°μ κ²μΌλ‘ μ μ΄λμ΄ μμ± λ μ½λλ₯Ό μμ€μ λ€λ₯΄κ² λ μ΄μμ ν μ μλ€λ©΄ μλ§λ μ¬λ¬ νλ‘μ νΈμ νμμ±μ΄ μ€μ΄λ€ κ² κ°μ΅λλ€.
λ΄ μ¬μ© μ¬λ‘λ λ μ격ν μ ν κ²μ¬ κ·μΉμ 견λ μμλ λκ·λͺ¨ λ κ±°μ μ½λλ² μ΄μ€κ° μμΌλ©° μ격ν κ²μ¬κ° νμ±ν λ μλ‘μ΄ μ½λλ² μ΄μ€μμ μ¬μ©νκ³ μΆμ΅λλ€. κ·Έλ¦¬κ³ λ κ±°μ μ½λλ₯Ό λ΄λ³΄λ΄κΈ°λ₯Ό μν΄ μ νμ μ΄λ¦μ μ§μ νλ λ° νμν λͺ¨λ μ νμ κ°μ Έ μ€μ§ μλ λ°±λ§ κ°μ μΌμ΄μ€κ° μκΈ° λλ¬Έμ λλ€ (# 9944). λ°λΌμ λ κ±°μ μ½λλ² μ΄μ€λ₯Ό μ μ½λλ² μ΄μ€μ μΆκ°νκ³ μΆμ§λ§ λμ¨ν κ·μΉμ λ°λΌ μ»΄νμΌλμμ΅λλ€. μ΄κ²μ 2 κ°μ λ€λ₯Έ μ»΄νμΌ λ¨κ³κ° λ μ μμ΅λλ€. μ»΄νμΌλ¬κ° νΉμ λλ ν 리 μλμ μμ€ νμΌμ λν΄ μμ ν λ laxer κ·μΉμ μ¬μ©ν΄μΌν©λλ€.
μ μκ² μ¬μ© μ¬λ‘λ λ
Έλλ₯Ό μ¬μ©νμ¬ μ€νλκ³ commonjs λͺ¨λλ‘ μ»΄νμΌν΄μΌνλ μ μ₯μμ μΌλΆλ₯Ό κ°μ§κ³ μλ λ°λ©΄ λ€λ₯Έ λΆλΆμ ES6μμ νΈλ¦¬ μμ΄νΉμ νμ±ννκΈ° μν΄ ES6 λͺ¨λλ‘ μ»΄νμΌν΄μΌν©λλ€. κ²½νμ΄ μ’μ§ μμ΅λλ€. μ κ²½μ°μλ TS_NODE_PROJECT
νκ²½ λ³μλ‘ ν΄νΉμ΄ λ§μ΄ λ°μν©λλ€. λ΄κ° κ²°κ΅ νλ‘μ νΈλ₯Ό λ°κΏ λ κ·Έκ²μ μ μ§νλ λ€μ μ¬λμ΄ μ§μ₯μ νΌλμ€λ½κ² ν μμλ κ² κ°λ€.
λλ μ¬μ ν μ΄κ²μ΄ ν΄κ²°λλ κ²μλ³΄κ³ μΆλ€. νλ‘μ νΈ λ΄μμ λͺ¨λ λΉ λ€λ₯Έ tsconfig.json
νμΌμ΄ νμν λκ·λͺ¨ νλ‘μ νΈμ κ²½μ° ν° λμμ΄ λ κ²μ
λλ€.
@Robinfr extends
κΈ°λ₯μΌλ‘ ν΄κ²°λμ§ μλ κ²μ 무μμ
λκΉ?
κ·Έκ²νλ€. λλμ΄ ν¬μ€νΈ μ΄νμ κ·Έκ²μ λν΄ μκ²λμλ€. κ·Έλ¬λ ν κ°μ§ μ£Όλͺ©ν μ μ include
λ₯Ό kκ° μΉν©μ ν΅κ³ΌνκΈ° λλ¬Έμ μΌλ°μ μΌλ‘ νμνμ§ μμ νμΌλ‘ μ€μ νμ§ μμΌλ©΄ μλνμ§ μλλ€λ κ²μ
λλ€.
Op 15 9 μ. 2017 9:24 am schreef Kitson Kelly [email protected] :
@Robinfr https://github.com/robinfr νμ₯ κΈ°λ₯μ 무μμ λκΉ https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#configuration-inheritance-with-extends κ° ν΄κ²°λμ§ μμ΅λκΉ?
β
λΉμ μ΄ μΈκΈ λμκΈ° λλ¬Έμ μ΄κ²μ λ°κ³ μμ΅λλ€.
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ GitHub https://github.com/Microsoft/TypeScript/issues/3645#issuecomment-329703706 μμ 보거λ https://github.com/notifications/unsubscribe-auth/AD90FLZKcHMJeFU0osJroT_yawlC1oTIks5siiZFgaJpZM4FMc8w μ€λ λλ₯Ό μμκ±°ν©λλ€.
@kitsonk νμ₯μ μ μλνμ§λ§ μλͺ»νμ§ μμΌλ©΄ λ κ΅¬μ± λͺ¨λμμ νΉμ μ€μ (λ΄ build λ° node_modules ν΄λ μ μΈ)μ λ°λ³΅ν΄μΌν©λλ€. λμκ² κ°μ₯ ν° κ³ ν΅μ λ΄ λͺ¨λ λκ΅¬κ° μ΄λ€ κ΅¬μ± νμΌμ΄ μ¬λ°λ₯Έ κ΅¬μ± νμΌμΈμ§ μκ³ μλμ§ νμΈνλ κ²μ
λλ€ (μΌλ°μ μΌλ‘ TS_NODE_PROJECT
νκ²½ λ³μμ κ°μ λ°©λ²μΌλ‘ μ¬μ©ν©λλ€. λ€λ₯Έ νλλ λ κ°μ tsconfigκ°μλ νλ‘μ νΈλ₯Ό μ΄ λ). VS.code. μ¬μ©ν νλ‘μ νΈ νμΌμ VSμ μ릴 μμλ λ°©λ²μ΄ μμΌλ©° ν΄λΉ tsconfigμ ν΄λΉ νμΌμ λν μ€μ μ΄ λ€λ₯΄κΈ° λλ¬Έμ μΌλΆ νμΌ μ€λ₯μ λν΄ μ¬λ°λ₯΄κ² λ°μ€μ΄ νμλμ§ μμ΅λλ€ (μ : tsconfig.build.json λ±).
@voy λΉλ©μ λ€λ₯Έ tsconfigκ°μλ μ΄μ λ₯Ό λ¬Όμ΄λ΄λ λ κΉμ? λ΄κ° μ΄ν΄ ν ν VSCodeλ νΈμ§μ€μΈ νμΌμ κ°μ₯ κ°κΉμ΄ tsconfig νμΌ ( tsconfig.json
)μ μ¬μ©ν©λλ€. μ§κΈκΉμ§ λ΄κ° κ°μ§ μ μΌν λ¬Έμ λ VSCodeκ° κ΅¬μ±μ μ¬μ©νκΈ° μμνκΈ° μ μ 루νΈμ tsconfig νμΌμ΄ μμ΄μΌνλ€λ κ²μ
λλ€.
@Robinfr νμ€ν©λλ€. λμΌν μ μ₯μμ webpack & babelμ μ¬μ©νμ¬ μ²λ¦¬λκ³ ES6 λͺ¨λμ μ¬μ©νμ¬ νΈλ¦¬ μμ΄νΉμ νμ±ννλ νμΌμ΄ μμ΅λλ€. λ€λ₯Έ νμΌμ λΉλ νλ‘μΈμ€μ μΌλΆμ΄λ©° λ Έλλ₯Ό μ¬μ©νμ¬ μ€νλλ―λ‘ κ°μ Έ μ€κΈ°κ° νμμ λ§κ² λ³νλμ΄μΌν©λλ€. μ΄λ»κ² ν΄κ²°ν μ μμμ§ λͺ¨λ₯΄κ² μ΅λλ€.
@voy λ ν΄λΉ νμΌμ λ³λμ ν΄λμ 보κ΄νμ§ μμ΅λκΉ? μ : λͺ¨λ Babel λ° webpack νμΌ μ© ν΄λ 1 κ°, λ Έλ νμΌ μ© ν΄λ 1 κ°. κ·Έλ° λ€μ κ° ν΄λμ λν΄ tsconfig.jsonμ κ°μ§ μ μμ΅λλ€. κ·Έκ² ν¨κ³Όκ° μμκΉμ?
@Robinfr μ μ΄μμ μ΄μ§λ§ νμ€ μΈκ³μμ νμ κ°λ₯νμ§λ μλ€κ³ μκ°ν©λλ€. μλ₯Ό λ€μ΄, λͺ¨λ κ΅¬μ± νμΌλ typescriptκ°λκ³ , λͺ¨λ TypeScript μ½λλ² μ΄μ€μ λμΌν κ·μΉμ λ°λΌ μ»΄νμΌ λ° λ¦°ν λκΈ°λ₯Ό μνλ©° μΌλΆ νμΌμ νλ‘μ νΈμ 루νΈμ μμ΄μΌν©λλ€. μ¬λ³Όλ¦ λ§ν¬λ₯Ό ν μ μμ§λ§ λλ‘λ λ€λ₯Έ λ¬Έμ κ° λ°μν©λλ€. κ·Έλμ μ’ λ μ μ°ν κ²μ΄ λμμ΄ λ κ²μ΄λΌκ³ μκ°ν©λλ€.
κ°μ₯ μ μ©ν λκΈ
λ§μΉ¨λ΄ ν΄κ²°μ± μ μ»μμ΅λλ€.
λ΄ μμ© νλ‘κ·Έλ¨ κ΅¬μ‘° :
-- μ±/-app / client / (λ΄ ν΄λΌμ΄μΈνΈ μΈ‘ μμ€ μ½λ)-app / server / (λ΄ μλ² μΈ‘ μμ€ μ½λ)-app / build / (μ¬κΈ°μ jsλ₯Ό μμ±ν©λλ€)-μ± / λ Έλ λͺ¨λ /-app / package.json-app / tsconfig.server.json-app / tsconfig.client.json
tsconfig.server.jsonμ λ΄μ© :
{ "compilerOptions": {..., "outDir": _ "build / server"_},"exclude": [ "node_modules", "client"]}
tsconfig.client.jsonμ λ΄μ© :
{ "compilerOptions": {..., "outDir": "λΉλ / ν΄λΌμ΄μΈνΈ"},"exclude": [ "node_modules", "server"]}
κ·Έλ° λ€μ μλ² μμ€ μ½λλ₯Ό μ»΄νμΌνλ €λ©΄ μ± λ£¨νΈ λλ ν 리μμ λ€μ λͺ λ Ήμ μ¬μ©ν©λλ€.
tsc -p tsconfig.server.json
λν λ£¨νΈ μ± λλ ν 리μμ ν΄λΌμ΄μΈνΈ μμ€ μ½λλ₯Ό μ»΄νμΌνλ €λ©΄ λ€μμ μννμμμ€.
tsc -p tsconfig.client.json
ν΄λΌμ΄μΈνΈ λ° μλ² μ»΄νμΌμ λͺ¨λ μ€ννκΈ° μν΄ package.jsonμ λͺ λ Ήμ μΆκ°νμ΅λλ€.
"μ€ν¬λ¦½νΈ": {..., "tsc": "tsc --p tsconfig.server.json && tsc --p tsconfig.client.json", ...}
κ·Έλ° λ€μ μλ²μ ν΄λΌμ΄μΈνΈλ₯Ό λͺ¨λ μ»΄νμΌνλ €λ©΄ λ£¨νΈ μ± λλ ν 리μμ μ€νν©λλ€.
npm μ€ν tsc
μ΄ μκ²¬μ΄ λΉμ μ λμΈ μ μκΈ°λ₯Ό λ°λλλ€ :-)