์๋ ํ์ธ์,
์ต๊ทผ์ src:
๋ฐ ๊ธฐํ ์ต์
์ ์ฌ์ฉํ์ง ์๊ณ ์
๋ ฅ TS ํ์ผ ๊ฒฝ๋ก ๋ฐ TS ๊ตฌ์ฑ ์ ๋ณด์ ๋ํด Visual Studio ํ๋ก์ ํธ ํ์ผ์ ๋์์ผ๋ก ์ง์ ํ ์์๋ grunt-ts ํ๋ฌ๊ทธ์ธ์ ๋ํ ๊ฐ์ ์ฌํญ์ ๊ฐ๋ฐํ์ต๋๋ค. https://github.com/TypeStrong/grunt-ts/pull/215
Task Runner Explorer์ ํจ๊ป Grunt-ts๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ Visual Studio TypeScript ํ๋ก์ ํธ ๋น๋ ๊ตฌ์ฑ UI (์ : preserveConstEnums)์์ ์์ง ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Task Runner Explorer ์ฌ์ฉ์ ๋ํ ํ ๊ฐ์ง ์ฌํญ์ ํน์ Visual Studio ์ด๋ฒคํธ์๋ง ์ฐ๊ฒฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ์ค์๋ "๋น๋ ํ"์ "๋น๋ ์ "์ด ์์ต๋๋ค. ๋น๋ ํ์๋ ํ๋ฅญํ๊ฒ ์๋ํ์ง๋ง VS๊ฐ TypeScript์ ์์ฒด ์ปดํ์ผ ๋จ๊ณ๋ฅผ ์ํ ํ ํ grunt-ts๊ฐ tsc๋ฅผ ํธ์ถํ๋ ์ด์ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ์ฑ๋ฅ์ ์ ์ธํ๊ณ ๋ ๋ฌธ์ ๊ฐ๋์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค (VS๊ฐ ์ปดํ์ผํ๊ณ ๋ฐฉ์ถํ๋ ์์ ์ ๋ญ๋น์ด๋ฉฐ ๊ฐ๋ฐ์๋ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ ์ค๋ ๊ธฐ๋ค๋ ค์ผํฉ๋๋ค).
TypeScript ์ฉ Visual Studio์์ ์ปดํ์ผ / ๋ด๋ณด๋ด๊ธฐ๋ฅผ _only_ ๋๊ณ ๋๋จธ์ง๋ ๋ชจ๋ ๋์ผํ๊ฒ ์ ์งํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ๊ถ๊ธํฉ๋๋ค (์ธ์ด ์๋น์ค / ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์, ์ค๋ฅ ๋ชฉ๋ก, C # ๋๋ VB ๋น๋ ๋ฑ). ์ง๊ธ๋ ๊ฐ๋ฅํฉ๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ทธ๋ด ์ ์์ต๋๊น?
๊ฐ์ฌ!
์๋ ํ์ธ์, ๋ถ๊ณผ ๋ฉฐ์น ์ ์ ์ด์ ๊ด๋ จ๋ ๋ฌธ์ # 2252๋ฅผ ์ ์ถํ์ต๋๋ค. ๋จ์ผ ํ์ผ ์ถ๋ ฅ์ด์๋ TS ํ๋ก์ ํธ์ ๋ํด ์ ์ฅ์ ์ปดํ์ผ์ ์ฌ์ฉํ ๋ ์ฌ์ ๋ฐ ์ฌํ ๋น๋ ์ด๋ฒคํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค (์ผ๋ฐ์ ์ธ VS "Build"๋ฐ "Rebuild"๋ช ๋ น, ์ธ์ด ์๋น์ค, ๋๋ฒ๊น ๋ฑ์ ๊ณ์ ์ ์งํ๋ฉด์) .). ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ํ์ฌ grunt-contrib-watch ( "Solution Open"๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ์ฌ ์์๋จ)์ ํจ๊ป Task Runner Explorer๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํ์ผ ๋ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ๊ณ ์์ ๋ ๋๋ง๋ค ์ถ๊ฐ ์์ ์ ์ํํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ์ด ์ ๋ง๋ก ๋ง์กฑ์ค๋ฝ์ง ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ณ (์ฌ์ ์ปดํ์ผ ์์ ์ ์ํํด์ผํ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก Grunt๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ๋จ๊ณ๋ฅผ ์ํํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค) ์ค๋ช ๋ ๊ฒ์ ์ ํํ ์ํํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค .VS ์ปดํ์ผ์ ์์ ํ ๋์ญ์์ค. ๊ทธ๋ฆฌ๊ณ grunt-contrib-watch, grunt-ts, ์ถ๊ฐ grunt ํ๋ฌ๊ทธ์ธ ๋ฐ Task Runner Explorer์ ์กฐํฉ์ผ๋ก ์ปค์คํ compile-on-save, ์ ์ฒด ๋น๋ (์คํ์ค์ธ ๋จ์ ํ ์คํธ ํฌํจ), ์ฌ์ ๋ฐ ์ฌํ ๋น๋ ์ด๋ฒคํธ๋ฅผ ๊ตฌํํฉ๋๋ค. .
(์ ๋ฐ์ดํธ : ์ด๋ฏธ ๊ตฌํ๋์์ผ๋ฉฐ ์ ์๋ํฉ๋๋ค. ํ์ฌ๋ TRE "Before Build"๋ฐ "After Build"๋ฐ์ธ๋ฉ์ ์ง์ํ์ง ์์ง๋ง .ts ํ์ผ์ด ์์ ๋ ๋๋ง๋ค ์ฌ์ฉ์ ์ง์ grunt ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค. ์์ธ).
์ด๋ฌํ ์ข ๋ฅ์ ๋น๋ ์๋๋ฆฌ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๋ ๊ฐ์ฅ ์ฝ๊ณ (TS ํ๋ฌ๊ทธ์ธ ๊ฐ๋ฐ์์๊ฒ๋ ์ต์ํ์ ๊ฐ์ ) ๋ฐฉ๋ฒ์ Visual Studio์์ ์์๋ ๋ชจ๋ ํํ์ ์ปดํ์ผ์ ํด์ ํ๋ ์ต์ ์ ์ ๊ณตํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ ๊ทธ๋ ๊ฒํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๋ฅผ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ง๊ธ ๋น์ฅ ๋น์ ์๊ฒ ์ข์ ์ ํ์ด ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ๋ก์ ํธ์ ๋ชจ๋ .ts ํ์ผ์ ์์ฑ์ Build Action: None
๋ก ์ค์ ํ๋ฉด ์ํ๋ ์์
์ ์ํ ํ ์ ์์ง๋ง ์ค๊ฐ ํฌ๊ธฐ์ ํ๋ก์ ํธ์์๋ ์๋์ผ๋ก ์ํํ๋ ๊ฒ์ด ๋งค์ฐ ๋ฒ๊ฑฐ ๋กญ์ต๋๋ค.
๋น๋๋ MSBuild ํ๋ก์ ํธ์ ๋์์ ์ํด ํ์๋ฉ๋๋ค. ๊ธฐ๋ณธ typescript ๋น๋๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด ํ์ผ์์ typescript ๋์์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์ด๊ฒ์ ๋น์ ์ ์ธ์ด ์๋น์ค๊ฐ ํ๋์ ์ปจํ
์คํธ์์ ํ๋ก์ ํธ์ ๋ชจ๋ ํ์ผ์ ์์งํ์ง ์๊ฒ ํ ๊ฒ์
๋๋ค. ๊ด์ฐฎ๋ค๊ณ ๋งํ๊ณ ๋ค์ ๋ฆด๋ฆฌ์ค์์๋ tsconfig ์ง์์ด ์์ด์ผํ๋ฉฐ ๊ทธ๋ฌ๋ฉด ์ ํ๋ก์ ํธ๊ฐ๋ฉ๋๋ค. tsconfig๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค์ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๊ณ์ ์๋ํ๊ฒํ๋ ค๋ฉด ํ๋ก์ ํธ ํ์ผ์ <TypeScriptEnabled>true</TypeScriptEnabled>
์์ฑ์ ์ ์ํฉ๋๋ค.
@mhegazy <TypeScriptEnabled>false</TypeScriptEnabled>
๋ฅผ) ์๋ฏธ ํ์ต๋๊น?
๋น์ ์ด ์ํ๋ ๊ฒ์ ๋ฐ๋ผ ์ :)
์ธ์ด ์๋น์ค ํ๋ก์ ํธ ์ฝํ
์ธ ๋ก๋๋ฅผ ๋๋ ค๋ฉด false๋ก ์ค์ ํ๊ณ
ํ์ฑํํ๋ ค๋ฉด ์ฌ์ค๋ก ๋ง๋์ญ์์ค. ๊ธฐ๋ณธ ๋์ (Microsoft.TypeScript.targets)์ ํฌํจํ์ฌ ์ด๋ฏธ ํ์ฑํ๋์ด ์์ต๋๋ค.
์ข์, ๋ ์๋ง์ด ๋ ๊ฒ. ๊ฐ์ฌ!
๊ฐ์ฌํฉ๋๋ค @mhegazy , ๊ตฌ์ฑ ์ต์ ์ด ์ง๊ธ๊น์ง ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค! (์ฌ์ ํ ๊ตฌ๋ฌธ / ์ปดํ์ผ ์ค๋ฅ๋ฅผ ํ์ํ๊ณ IE์์ ๋๋ฒ๊น ์ ํ์ฉํ๋ ๋์) ๋ค์๊ณผ ๊ฐ์ด ํน์ ์๋ฃจ์ ๊ตฌ์ฑ์ ๋ํด ์ค์ ํ ์๋ ์์ต๋๋ค (๋ด๊ฐ ์๋ํ์ง๋ง ์๋ํ๋ ๊ฒ ๊ฐ์).
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
...
<TypeScriptEnabled>false</TypeScriptEnabled>
...
</PropertyGroup>
"์ธ์ด ์๋น์ค ํ๋ก์ ํธ ์ฝํ
์ธ ๋ก๋ ๋นํ์ฑํ"๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง ์ ํํ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. (๋์, ์ปจํ
์คํธ ๋ฑ๊ณผ ๊ฐ์ VS ๊ฐ๋
์ ์ต์ํ์ง ์์ต๋๋ค.) ํ
์คํธ ํ ํ ๋ชจ๋ ๊ฒ์ด์ด ์ต์
์ผ๋ก ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค (๋น๋์์ ์ปดํ์ผํ์ง ์๋ ์์๋๋ ๋์ ์ ์ธ)? ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ ๊ตฌ์ฑ์์ ์๋ก ์ถ๊ฐ / ์์ฑ ๋ .ts ํ์ผ์ ๋ํด <TypeScriptCompile Include=".."/>
ํญ๋ชฉ์ ๊ณ์ ์ถ๊ฐ ํ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐธ๊ณ ๋ก, ์ด์ Grunt๋ฅผ ํตํด ๋ชจ๋ ์์
์ด ์๋ฃ๋์์ผ๋ฏ๋ก ์ด๋ป๊ฒ ๋ VS Build
ํธ์ถ์ grunt-watch ํธ๋ฆฌ๊ฑฐ ๋น๋์ "Before Build"/ "After Build"๋ฐ์ธ๋ฉ ์ด๋ฒคํธ ๊ฐ์ ์ถฉ๋์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผํฉ๋๋ค Rebuild
๋ช
๋ น์ ๋น๋๊ฐ ์์๋๊ธฐ ์ ์ VS๊ฐ ์๋์ผ๋ก ์ ์ฅํ๋ฏ๋ก ๋ ๊ฐ์ ๋ค๋ฅธ Grunt ์ธ์คํด์ค๊ฐ ๋ถํ์ํ๊ฒ ๋ณ๋ ฌ๋ก ์คํ๋ฉ๋๋ค.
<TypeScriptEnabled>false</TypeScriptEnabled>
์์
์ ์ํ ํ ์ ์์์ง๋ง (TypeScript 1.4๊ฐ ํฌํจ ๋ VS 2013 ์
๋ฐ์ดํธ 4) ํ๋ก์ ํธ์์ TypeScript ๋์ ํ์ผ์ ์ ๊ฑฐํ๋ฉด ํ๋ก์ ํธ ๋น๋์์ ์ปดํ์ผ์ด ๋นํ์ฑํ๋์์ต๋๋ค.
๋ค์์ VS์์ TypeScript ์ปดํ์ผ์ ๋นํ์ฑํํ๋ ๋ฐ ํ์ํ ์ ์ฒด ๋จ๊ณ์ ๋๋ค (์ฌ์ ํ ์ธ์ด ์๋น์ค๊ฐ ์๋ํ๊ณ ๋ฆฌํฉํ ๋ง์ ๊ณ์ ํ๋ณตํ๊ฒ ์ ์งํ๋ ๋ฑ).
๋ ๋ฒ์งธ ๋จ๊ณ๋ ์ผ์ข
์ ๋ฒ๊ทธ์
๋๋ค (๋๋ ์ต์ํ ๋ํ ์์์ ์๊ฒฉํ๊ฒ ์ ํํ ๋ฐฉ์์ผ๋ก ๋ ์ด๋ธ์ด ์ง์ ๋์ด ์์ง ์์ต๋๋ค). TypeScript ํ์ผ์ด ํ๋ก์ ํธ์ "์ผ๋ถ"์ธ ๊ฒฝ์ฐ์๋ ๋์ ํ์ผ์ ๋นํ์ฑํํ๋ฉด Visual Studio 2013์ ํด๋น ํ์ผ์ ํ๋ก์ ํธ์ ์ผ๋ถ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์ฒ๋ฆฌํ๊ณ ์ ์ฅ์ ์ปดํ์ผํฉ๋๋ค (์ ์ญ ์ต์
์ด ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ). <TypeScriptEnabled/>
์ (๋ฅผ) ์ป์ ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค @mhegazy- ์ด๊ฒ์ด TypeScript ์ต์ ๋ํ ์์์ ์ผ๋ถ์ผ ์ ์๋ค๋ฉด ๋ฉ์ง ๊ฒ ์ง๋ง ์ ์ด๋ ํ๋ก์ ํธ ํธ์ง์ ํตํด ์ง์ํ๋ ๊ฒ์ ์๋นํ ์ฝ์ต๋๋ค.
ํ ๊ฐ์ง ๊น๋ค๋ก์ด ์ ์ <TypeScriptEnabled>false</TypeScriptEnabled>
๊ฐ ํนํ ๋์์ผ๋ก ๊ฐ์ ธ์จ ํ์ ํ์ผ ๋์ ์์ด์ผํ๋ค๋ ๊ฒ์
๋๋ค. ๋์์ด ์ด์จ๋ ์ ์ํ๋ฏ๋ก ์ฌ์ ์ํ๊ณ ์ถ์ต๋๋ค.
ํ ๊ฐ์ง ๊น๋ค๋ก์ด ๊ฒ์
๊ทธ๋ฆ๋ ํนํ ๋์์ผ๋ก ๊ฐ์ ธ์จ ํ ํ์ผ์ ๋์ ์์ด์ผํฉ๋๋ค. ๋์์ด ์ด์จ๋ ์ ์ํ๋ฏ๋ก ์ฌ์ ์ํ๊ณ ์ถ์ต๋๋ค.
๋น์ ๋ง์ด ๋ง์์! ์ด๊ฒ์ด ์์์์์ต๋๋ค.
์ด๊ฒ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ฌํฉ๋๋ค, @mhegazy .
@mhegazy ์๋
ํ์ธ์. <TypeScriptEnabled>false</TypeScriptEnabled>
๊ฐ TypeScript 1.4๊ฐ ์ค์น๋ VS 2013์์ ์๋ํ๋ค๊ณ ํ์ ํ์ญ๋๊น? ๋ฐฉ๊ธ ํ์ฌ PC๋ฅผ TS 1.3 (์คํธ๋ ์ดํธ VS 2013 ์
๋ฐ์ดํธ 4)์ ์ฌ์ฉํ๋ VS 2013์์ TS 1.4๋ฅผ ์ฌ์ฉํ๋ VS 2013์ผ๋ก ์
๊ทธ๋ ์ด๋ํ์ผ๋ฉฐ ์ด์ Visual Studio๊ฐ "๋น๋์"TypeScript๋ฅผ ๋ค์ ๋น๋ํ๋ ค๊ณ ํฉ๋๋ค ( "Build ๋ด ํ๋ก์ ํธ์ ๋ง์ง๋ง 5 ์ค์ ๋ค์๊ณผ ๊ฐ์ง๋ง : "์์ ์์ต๋๋ค.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
<PropertyGroup>
<TypeScriptEnabled>false</TypeScriptEnabled>
</PropertyGroup>
</Project>
์ค๋ ์ด (์ด ํฐ์ผ์ ๋ซ์์ ๋)์ด ์ปดํจํฐ์์ ์ ๋๋ก ์๋ํ์ง๋ง ์ด์ ์ฌ๊ธฐ์ 1.4๋ฅผ ๋ฃ์์ผ๋ฏ๋ก Build from VS์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋์ ํ์ผ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ฃผ์ ์ฒ๋ฆฌํ๊ณ (ํ๋ก์ ํธ์์๋ TypeScript์ ๋ํด "์ ์ฅ์ ์ปดํ์ผ"์ ํด์ ) ์ฌ์ ํ ๋นํ์ฑํ๋ฉ๋๋ค.
์ง์ 1.4๊ฐ ์๋๋ฐ <TypeScriptEnabled>false</TypeScriptEnabled>
์ (๋ฅผ) ์ ํ ์ฌ์ฉํ ์ ์์ต๋๋ค.์ด ๋น๋ ์ต์
์ ํ๊ท๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
<TypeScriptEnabled>false</TypeScriptEnabled>
๋ ๋น๋์ ๊ด๋ จ์ด ์์ต๋๋ค. ํ๋ก์ ํธ์ ์ผ๋ถ๋ก ํ์ผ์ ์ฒ๋ฆฌํ๋ ์ธ์ด ์๋น์ค์ ๊ดํ ๊ฒ์
๋๋ค.
F5์์ ๋น๋ํ์ง ์์ผ๋ ค๋ฉด ๋์์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ์ญ์์ค.
๊ทธ๊ฒ์ด ์งง์ ๋๋ต์ด์์ต๋๋ค. ์ฌ๊ธฐ์ ๊ธด ๋ฒ์ ์ด ์์ต๋๋ค.
ํ๋ก์ ํธ ํ์ผ์ ๋ค์ ๋ ๊ฐ์ง ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค.
<TypeScriptTarget>ES3</TypeScriptTarget>
)์์ ๋์์ด ES3๋ก ์ค์ ๋ ๊ฒฝ์ฐ ํด๋์ค์์ get / set์ ์ ์ํ๋ฉด ์ธ์ด ์๋น์ค์์ ๋นจ๊ฐ์ ๋ฌผ๊ฒฐ ์ ์ด ํ์๋ฉ๋๋ค.<TypeScriptEnabled>true</TypeScriptEnabled>
์์ฑ์ ์ ์ํ์ฌ typescript์ ๋ํด ์๊ณ ์์์ ์ธ์ด ์๋น์ค์ ์๋ฆฝ๋๋ค.VS์์ ๋น๋๊ฐ ์๋ํ์ง ์๋๋กํ๋ ค๋ฉด ๋์์ ์ ๊ฑฐํ์ญ์์ค. ์ด๋ ๊ฒํ๋ฉด ๋น๋๊ฐ ๋นํ์ฑํ๋์ง๋ง LS์์ด ํ๋ก์ ํธ๊ฐ TypeScript ํ๋ก์ ํธ๊ฐ ์๋์ ์๋ฆฝ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋ชจ๋ ํ์ผ์ "๋์จํ ํ์ผ"๋ก ์ทจ๊ธํฉ๋๋ค. ์ด๊ฒ์ด ๊ด์ฐฎ๋ค๋ฉด ๋ ์ด์ ์์
์ด ํ์ํ์ง ์์ต๋๋ค. ์ด๋ฅผ ๋ณ๊ฒฝํ๊ณ ํ๋ก์ ํธ ํ์ผ์ ์์ฑ์ ๊ณ์ ์ฌ์ฉํ๊ณ ํ๋ก์ ํธ์ ์ด๋ ค์๋ ๋ค๋ฅธ ํ์ผ์ ํฌํจํ์ง ์๋๋กํ๋ ค๋ฉด ํ์ผ์ <TypeScriptEnabled>true</TypeScriptEnabled>
๋ฅผ ์ถ๊ฐํ๋ฉด LS๊ฐ ๊ทธ์ ๋ฐ๋ผ ์ฒ๋ฆฌํฉ๋๋ค. .
๋น๋๊ฐ VS์์ ์๋ํ๋๋กํ๊ณ LS๊ฐ์ด๋ฅผ ํ๋ก์ ํธ๋ก ์ฒ๋ฆฌํ์ง ์๋๋กํ๋ ค๋ฉด ํ๋๊ทธ๋ฅผ false๋ก ์ค์ ํ์ญ์์ค.
๊ฐ์ฌ. ์ด๊ฒ์ ํ๋ฅญํ ์ ๋ณด์ด๋ฉฐ ๋ชจ๋ ๊ฒ์ด ๊ทํ๊ฐ ์ค๋ช
ํ ๊ฒ๊ณผ ์ผ๊ด๋๊ฒ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. .targets ํ์ผ์ ์ ๊ฑฐํ์ง๋ง TypeScriptEnabled
๋ฅผ true๋ก ์ค์ ํ ๊ฒฝ์ฐ TypeScript ๋น๋ ํญ์ด ํ๋ก์ ํธ ์์ฑ์์ ์ฌ๋ผ์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๊น?
<!--
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
-->
<PropertyGroup>
<TypeScriptEnabled>true</TypeScriptEnabled>
</PropertyGroup>
</Project>
๊ทธ๋ ๋ค๋ฉด ๋์์ ๋ค์ ํ์ฑํ ํ ๋ค์ UI๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ UI์์ ์ก์ธ์ค ํ ์์๋ ์ค์ ์ ์ ์ด ํ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ด์ํ๊ฒ ๋ณด์ ๋๋ค (๋๋ ๊ทธ ์์ ์์ ์ง์ TS ํ๋ก์ ํธ ์ค์ ์ ํธ์งํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค. ๋น์ ์ ์ด์จ๋ ๊ฑฐ๊ธฐ์ ์์ต๋๋ค).
๋ด๊ฐ์ด ๋ชจ๋ ๊ฒ์ ๋ฌป๋ ์ด์ ๋ ๋ช ์ฃผ ์ ์ .csproj ๋ฐ .vbproj (https://www.npmjs.com/package/csproj2ts)์์ TypeScript ๋น๋ ์์ฑ์ ์ฝ๊ธฐ ์ํด npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ฌ grunt-ts์ ํตํฉ๋๊ณ ์์ต๋๋ค. ์ค๋น๊ฐ๋๋ฉด ".csproj ํ์ผ์ ๋ํด tsc๋ฅผ ์คํ"ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค (์ฌ๊ธฐ์์ ์์ฒญํ๋๋ก : https://github.com/Microsoft/TypeScript/issues/1702). ์ฝ๋ฉ ๊ฒฝํ์ ์ํด VS TypeScript ์ธ์ด ์๋น์ค๋ฅผ ์ฌ์ฉํ๋๋ก ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ฌ๋๋ค์๊ฒ ์๋ฆฌ๊ณ ์ถ์ง๋ง ๋น๋์๋ grunt-ts๋ฅผ ์ ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ด ์๋๋ฆฌ์ค์์ ์ฌ๋๋ค์ด UI๋ฅผ ์ฌ์ฉํ์ฌ TypeScript ์์ฑ์ ๊ตฌ์ฑ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋์ง๋ง ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค.
TypeScript .targets ํ์ผ์ด ๋นํ์ฑํ ๋ ์ํ์์ TypeScript ๋น๋ ํญ์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น?
๋ํ <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition=" '$(Configuration)' == 'Debug' " />
๊ฐ์ ์์
์ ์ํํ๋๋ผ๋ TypeScript ๋น๋ ํญ์ด ๋ํ๋๋๋กํ๋ ค๋ฉด ํ๋ก์ ํธ ๊ตฌ์ฑ์ ๋๋ฒ๊ทธ๋ก ์ค์ ํ ๋ค์ ๋ค์๋ก๋ํด์ผํฉ๋๋ค.
์ฃ์กํฉ๋๋ค, @mhegazy- ๋๋ ๋น์ ์ ํธ๋กค๋งํ์ง ์์ ๊ฒ์ ์ฝ์ํฉ๋๋ค!
TypeScript ๋น๋ ํญ์ด ํ๋ก์ ํธ ์์ฑ์์ ์ฌ๋ผ์ง ๊ฒ์ผ๋ก ์์๋ฉ๋๊น?
์, ์์ฑ ํ์ด์ง๊ฐ ๋์์ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฏ๋ก ์ ๊ฑฐํ๋ฉด UI๊ฐ ์ ๊ฑฐ๋๋ฏ๋ก ํ์ผ์ ์๋์ผ๋ก ํธ์งํด์ผํฉ๋๋ค.
๋ด๊ฐ์ด ๋ชจ๋ ๊ฒ์ ๋ฌป๋ ์ด์ ๋ ๋ช ์ฃผ ์ ์ .csproj ๋ฐ .vbproj (https://www.npmjs.com/package/csproj2ts)์์ TypeScript ๋น๋ ์์ฑ์ ์ฝ๊ธฐ ์ํด npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ฌ grunt-ts์ ํตํฉ๋๊ณ ์์ต๋๋ค.
๋ฌ์ฑํ๋ ค๋ ์๋๋ฆฌ์ค๋ ์คํ ๊ฐ๋ฅํ์ง๋ง ์ฝ๊ฐ์ ๊ฐ์ฅ์๋ฆฌ๊ฐ ์์ผ๋ฉฐ ์๋ํ๋ ค๋ฉด ๋ช ๊ตฐ๋ฐ๋ฅผ ํดํนํด์ผํฉ๋๋ค. @paulvanbrenk ๋ ํ์ฌ VS์์ tsconfig์ ๋ํ ์ง์์ ์ถ๊ฐํ๊ณ ์์ผ๋ฉฐ,์ด๋ฅผ ํตํด ํ๋ก์ ํธ ์์ฑ ํ์ด์ง๊ฐ์๋ ๊ฒฝ์ฐ tsconfig ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ASP.net 5 ํ๋ก์ ํธ ์์ ๋ ๋์ ํตํฉ์ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ฆ, 1. grubt / bower ์ง์, 2. ํ์ผ ์์คํ ๊ธฐ๋ฐ๋ณด๊ธฐ, 3. tsconfig๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ์์ฑ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ 4. ๋ค๋ฅธ ํธ์ง์ / IDE์์ ๊ฐ๋จํ ์ํธ ์์ฉ. ๋๋ ์ด๊ฒ์ด ๋น์ ์ด ์ค๋ช ํ๋ ์๋๋ฆฌ์ค์ ์ ๋ง์ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ณ ๋น์ ์ ๊ทธ๊ฒ์ ํดํน ํ ํ์๊ฐ ์์ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ๋ค์ ๋ฆด๋ฆฌ์ค์์ ์ฌ ๊ฒ์ด๋ฏ๋ก ์ฝ๊ฐ์ ๋๊ธฐ๊ฐ ํ์ํฉ๋๋ค. :)
๋ํ ๋ค์๊ณผ ๊ฐ์ดํด๋ ๋ณด์ธ๋ค :
, TypeScript ๋น๋ ํญ์ ํ์ํ๋ ค๋ฉด ํ๋ก์ ํธ ๊ตฌ์ฑ์ ๋๋ฒ๊ทธ๋ก ์ค์ ํ ๋ค์ ๋ค์๋ก๋ํด์ผํฉ๋๋ค.
ํ๋ก์ ํธ๊ฐ๋ก๋ ๋ ๋ ๊ฐ์ ธ ์ค๊ธฐ๊ฐ๋ก๋๋ฉ๋๋ค. ๋ฐ๋ผ์์ด ๊ฐ์ ธ ์ค๊ธฐ์์๋ '๊ตฌ์ฑ' '๋๋ฒ๊ทธ'์์๋ง๋ก๋๋์๋ค๊ณ ๋งํ๊ณ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํด๋ ๊ฐ์ ๋ก ๋ค์๋ก๋๋์ง ์์ต๋๋ค.
์ฃ์กํฉ๋๋ค, @mhegazy- ๋๋ ๋น์ ์ ํธ๋กค๋งํ์ง ์์ ๊ฒ์ ์ฝ์ํฉ๋๋ค!
: D ๊ฑฑ์ ํ์ง ๋ง์ธ์. ํญ์ ํผ๋๋ฐฑ ๋ฐ๊ธฐ๋ฅผ ์ข์ํ๊ณ ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํ์ธ. ์ ๋ง ํ๋ฅญํ ์ ๋ณด์ ์ฒ ์ ํ ํ ๋ก ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@paulvanbrenk ์๊ฒ ๋์ง๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค. tsconfig
๋ฅผ ์ฌ์ฉํ์ฌ ๋ฏธ๋ ์ํ์์๋ VisualStudio TypeScript ๋น๋๋ฅผ ๋นํ์ฑํ ํ ์์๋ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ๋ฉ์ง ๊ฒ์
๋๋ค (CTRL + SHIFT + B ์๋ฏธ). C # ๋ฑ์ ๋น๋ํ์ง๋ง TypeScript๋ ๋น๋ํ์ง ์์) GUI๋ฅผ ํตํด TypeScript ์ต์
์ ์ค์ ํ ์์๋ ๊ธฐ๋ฅ์ ๊ทธ๋๋ก๋๊ณ ์ธ๋ถ TypeScript ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ธ๋ถ ์ปดํ์ผ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ๋์์ด ๋ ์์๋ ์ด์ ๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ์ง๊ธ์ ์ด๊ฒ์ด ์ค์ ๋ก ์ฐ์ฐํ ๋ง ์ง์๋๊ณ ๊ฑฐ์น ๊ฐ์ฅ์๋ฆฌ๊ฐ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋๋ค.
tsconfig
์์ด๋์ด๋ ํ๋ฅญํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ค์ ๋ก ๋์์ด๋์ง ์์ต๋๋ค.
Visual Studio ์ฌ์ฉ์๊ฐ ์ปค๋ฎค๋ํฐ์์ ๊ฐ๋ฐ ํ TypeScript ์ปดํ์ผ๋ฌ ์์คํ ์ ์ ํํ ์ ์๋๋ก ํ์ฉํ๋ ๋์์ Visual Studio ๋ด์์ ๋ฉ์ง UI๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋ฉ์ง ๊ฒ์ ๋๋ค (ํนํ ๋ฉ์ง Task Runner Explorer ์ถ๊ฐ ๊ธฐ๋ฅ ์ฌ์ฉ). "Disable TypeScript Build"๋ผ๋ ์ฒดํฌ ๋ฐ์ค๋ฅผ ์ฝ๋ฉํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ๋น๊ตํ์ฌ ์ด๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ๋ ์ปค๋ฎค๋ํฐ์ ์ค์ํ ์ด์ ์ ํ๊ฐ ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
"Disable TypeScript Build"๋ผ๋ ์ฒดํฌ ๋ฐ์ค๋ฅผ ์ฝ๋ฉํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ๋น๊ตํ์ฌ ์ด๊ฒ์ด ๊ฐ๋ฅํ๊ฒ ๋ ์ปค๋ฎค๋ํฐ์ ์ค์ํ ์ด์ ์ ํ๊ฐ ํด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค.
์ด๊ฒ์ ๋ด๊ฐ ํผ๋์ค๋ฌ์ํ๋ ๋ถ๋ถ์
๋๋ค. ๋์๊ฒ ์ด๊ฒ์ typescript targets ์ฐธ์กฐ๋ฅผ ์ ๊ฑฐํ ๋ค์ ๋ฌผ๊ฑด์ ๋ค๋ฅด๊ฒ ๋น๋ํ๋ grunt ๋์์ผ๋ก ๋์ฒดํ๋ ๊ฒ์
๋๋ค. ์๋ฌด๊ฒ๋ํ์ง ๋ง๋ผ๊ณ ํ๋ ์กฐ๊ฑด์ด์๋ .targets ํ์ผ์ ํฌํจํ๋ ๊ฒ์ด ์ด์ํ๊ฒ ๋๊ปด์ง๋๋ค. ์ ์ฒ์์ ๊ทธ๊ฒ์ ํฌํจํฉ๋๊น? ํ์ค typescript ๋์์ ๋์ฒดํ๋ .targets ํ์ผ์ ์์ฑํ๋ ๊ฒ์ ๊ธฐ๊บผ์ด ๋์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.์ด ํ์ผ์๋ <TypeScriptEnabled>true</TypeScriptEnabled>
ํ๊ทธ๊ฐ ํฌํจ๋๊ณ VS๋ฅผ ๊ธฐ๋ณธ ํ๊ทธ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ง๋ง ๋น๋๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํฉ๋๋ค.
ํ. ๋๋ ๊ทธ๊ฒ์ ์๊ฐ ํ์ด์ผํ๋ค. ๋๋ .targets ํ์ผ์์ด ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์ทจ๊ธํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ๋ฌผ๋ก ์ด๊ฒ์ ์๋ฒฝํ๊ฒ ์ดํด๋๋ค. ํ๊ฒ ํ์ผ ํ์์ ์ดํด๋ณด๊ณ ๋ค์ ์ฐ๋ฝ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์์ํ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋์ ํ์ผ Microsoft.TypeScript.Target์ ๋ณต์ฌํ๊ณ , tsc ํธ์ถ๊ณผ ๊ฐ์ด ์ ๊ฒฝ ์ฐ์ง ์๋ ํญ๋ชฉ์ ์ ๊ฑฐํ๊ณ , grunt๋ฅผ ํธ์ถํ๋ ์์ ์ ์ถ๊ฐํ๊ณ , ๊ตฌ์ฑ์ ์ฐ๊ฒฐํ๋ ๋ฑ์ ์์ ์ ํฌํจํ๋ ๊ฒ์ ๋๋ค. ๋น์ ์ ํ๋ก์ ํธ.
๋๋ฐ! .csproj ํ์ผ์ ๋ค์ 4 ์ค๋ก ์ค์ ํ์ฌ ๋ฏธ๋๋ฉ ํ ๊ด์ ์์ ๋ชจ๋ ์์ ์ ์ํํ์ต๋๋ค.
<Import Project="$(ProjectDir)\custom.TypeScript.targets" />
<PropertyGroup>
<TypeScriptEnabled>true</TypeScriptEnabled>
</PropertyGroup>
๊ทธ๋ฆฌ๊ณ ๋ฏธ๋๋ฉ ํ custom.TypeScript.targets ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VsToolsPath Condition="'$(VsToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VsToolsPath>
</PropertyGroup>
<UsingTask TaskName="TypeScript.Tasks.VsTsc" AssemblyFile="$(VSToolsPath)\TypeScript\TypeScript.tasks.dll" />
<PropertyGroup>
<CfgPropertyPagesGuidsAddCSharp>{d4683cae-88c4-4b85-863d-ac8014f3ba36}</CfgPropertyPagesGuidsAddCSharp>
<CfgPropertyPagesGuidsAddVB>{d4683cae-88c4-4b85-863d-ac8014f3ba36}</CfgPropertyPagesGuidsAddVB>
<CfgPropertyPagesGuidsAddTypeScript>{d4683cae-88c4-4b85-863d-ac8014f3ba36}</CfgPropertyPagesGuidsAddTypeScript>
</PropertyGroup>
<ItemGroup>
<ProjectCapability Include="TypeScript" />
</ItemGroup>
</Project>
๋์ ํ์ผ์ <TypeScriptEnabled />
ํ๊ทธ๋ฅผ ๋ฃ์ผ๋ ค๊ณ ํ์ง๋ง ์๋ํ์ง ์์์ต๋๋ค (VS๋ .ts ํ์ผ์ ๋์จํ ๊ฒ์ผ๋ก ์ทจ๊ธํ์ต๋๋ค). ๊ทธ ์ด์ ๋ฅผ ์์ญ๋๊น? (MSBuild๋ฅผ ์๋ ์ฌ๋์๊ฒ๋ ์ด๊ฒ์ด ๋ถ๋ช
ํฉ๋๋ค-์๋ง๋ ์ผ์ข
์ ๋ฒ์ ๋ฌธ์ ์ผ๊น์?).
์ด ์์ ์์ ์ด๊ฒ์ด ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค. VS Build๊ฐ ํธ๋ฆฌ๊ฑฐ ๋ ๋ Grunt ๋๋ Gulp ์์ ์ ์์ํ ์์๋ Task Runner Explorer ํ์ฅ์ ์ฌ์ฉํ์ฌ Grunt ์์ ์ ์คํํ ์ ์์ต๋๋ค. ์ด์ ๋น๋๋ TypeScript ์ปดํ์ผ ๊ฒฐ๊ณผ์ ๊ด๊ณ์์ด ํญ์ ์ฑ๊ณตํ ๊ฒ์ผ๋ก ํ์๋์ง๋ง ์ฌ์ฉ์๊ฐ TRX ์ฐฝ์์ grunt-ts์ ์ถ๋ ฅ์ ๋ณผ ์ ์์ผ๋ฏ๋ก ๊ด์ฐฎ์ต๋๋ค. ํ๋ก์ ํธ ์์ฑ ์ฐฝ์ "TypeScript ๋น๋"ํจ๋์ด ๋ํ๋ฉ๋๋ค. ํด๋น ์ต์ ์ ์ ํํ๋ฉด ์ ์ฅ์ ์ปดํ์ผ์ด ์๋ํฉ๋๋ค. C # ๋๋ VB ์ฝ๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ปดํ์ผ๋์ง ์์ผ๋ฉด ๋น๋๊ฐ ์ฌ์ ํ ์คํจํ ๊ฒ์ผ๋ก ํ์๋ฉ๋๋ค (์ข์ ์ ). ๊ธฐ๋ณธ Visual Studio "TypeScript๋ฅผ ์ฌ์ฉํ๋ HTML ์์ฉ ํ๋ก๊ทธ๋จ"๋๋ ASP.NET ์น ํ๋ก์ ํธ์์ ์ฌ๊ธฐ๋ก ์ด๋ํ๋ ์ค์ ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
์์ ๋ฏธ๋๋ฉ๋ฆฌ์คํธ .targets ํ์ผ์ grunt-ts๋ก ๋ฐฐํฌํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ์ฆ ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ ํ๋ก์ ํธ์ .targets ๋ผ์ธ์ ์
๋ฐ์ดํธํ๋ ์ฌ๋๋ค์๊ฒํด์ผ ํ ๊ฒ์ด๋ค ๊ฒ์ ์๋ฏธ <Import Project="$(ProjectDir)\node_modules\grunt-ts\custom.TypeScript.targets" />
๋ฐ ์ค์ <TypeScriptEnabled>
.
๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค !!
๋๋ ๋ฃ์ด ๋ณด์์ต๋๋ค
๋์ ํ์ผ์ ํ๊ทธ๊ฐ ์์ง๋ง ์๋ํ์ง ์์์ต๋๋ค (VS๋ .ts ํ์ผ์ ๋์จํ ๊ฒ์ผ๋ก ์ทจ๊ธํ์ต๋๋ค). ๊ทธ ์ด์ ๋ฅผ ์์ญ๋๊น? (MSBuild๋ฅผ ์๋ ์ฌ๋์๊ฒ๋ ์ด๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค-์๋ง๋ ์ผ์ข ์ ๋ฒ์ ๋ฌธ์ ์ผ๊น์?).
์ด๊ฑด ์ด์ํด. ์ด๊ฒ์ด ์ฐ๋ฆฌ์ ๋ชฉํ์์๋ ๋ฐฉ๋ฒ์ด๋ฉฐ ์ ์๋ํฉ๋๋ค. ์์ฑ์ด์๋ ๋ค๋ฅธ ๋์์ ํฌํจํ๊ณ ์์ต๋๊น? ์ด๋ค ์กฐ๊ฑด? ๋๋ ์๋ก์ด ts ํ๋ก์ ํธ์์ ๊ทธ๊ฒ์ ์๋ํ๊ณ , Microsoft.TypeScript.targets๋ฅผ ์ ๊ฑฐํ๊ณ , ๋น์ ์ ๊ฒ์ ๋ฃ๊ณ , ์ถ๊ฐํ์ต๋๋ค.
์์ ๋ฏธ๋๋ฉ๋ฆฌ์คํธ .targets ํ์ผ์ grunt-ts๋ก ๋ฐฐํฌํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ์ฆ, ์ฌ๋๋ค์๊ฒ ํ๋ก์ ํธ์ .targets ๋ผ์ธ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฐ์ดํธํ๋ผ๊ณ ๋งํ๋ฉด๋ฉ๋๋ค.
๋ฐ ์ค์ .
๋๋ ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ฑฐ๊ธฐ์์ TypeScriptEnabled๋ฅผ ์ป์ผ๋ ค๊ณ ํ ๊ฒ์ ๋๋ค. ๋ฌธ์ ์ง๋จ์ ๋์์ด ๋ ์์๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์ธ์.
๋ช ๊ฐ์ง ์ฐธ๊ณ ์ฌํญ์ ๋ค๋ฅธ ์์ ์ ํ์ํ์ง ์๋ ํ tasks.dll ์ฐธ์กฐ ๋ VsToolsPath ์ ์๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ง์์๋ ์ปดํจํฐ์์ ๋น์ ์ด ์์ํ๋ ํ๋์๋ณด๊ณ ์์ต๋๋ค. DLL์ ๋ํ ์ฐธ์กฐ ์์ด๋ ์๋ํ์ต๋๋ค. ์์ ์ ์ค์ ํ ๊ฒ ํ๋ฆผ ์์ผ๋ ๋ด์ผ ๋ค์ ํด๋ณด๊ฒ ์ต๋๋ค. ์ ๋ง ๋๋จํ๋ค๊ณ ์๊ฐํฉ๋๋ค! ๊ณ ๋ง์, ๋ชจํ๋ฉ๋. ์ด๊ฒ์ ๋ฉฐ์น ๋ด์ grunt-ts์ ์ผ๋ถ๋ก ๊ณต๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ด ๋ฌธ์ ์ ์์ธ ์ค ํ๋๋ ๋์ ํ์ผ์ด VS์์ ํ ๋ฒ๋ง๋ก๋๋๋ฏ๋ก ๋์์ ํธ์งํ๋ฉด VS๋ฅผ ๋ค์ ์์ํ ๋๊น์ง ๋ณ๊ฒฝ ์ฌํญ์ด ํ๋ก์ ํธ์ ๋ฐ์๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ด ์๋ ์์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ์ธ๋ก๋ / ๋ค์๋ก๋ํ๊ณ ์์์ต๋๋ค. ์ง์์ VS๋ฅผ ๋ค์ ์์ํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ฌธ์์ ๊ธฐ๋ก ํ ๊ฒ์ด๋ค.
@mhegazy ๋ชจ๋ ๋์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. "Visual Studio ํ๋ก์ ํธ์์ ์ปดํ์ผ"๊ธฐ๋ฅ์ด ํฌํจ ๋ grunt-ts 4.0.0์ ์ถ์ํ์ต๋๋ค.
https://github.com/TypeStrong/grunt-ts#vs
VS ๋น๋๋ฅผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ :
https://github.com/TypeStrong/grunt-ts/blob/master/docs/DisableVisualStudioBuild.md
์์ฃผ ๋ฉ์ง๋ค! ๋๋ ์ด๊ฒ์ด ๊ฐ๋ฅํ๊ฒํ๋ ์๋๋ฆฌ์ค๋ฅผ ์ข์ํ๋ค.
๊ณ ๋ง์, ๋ผ์ด์ธ. ๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ๋ฐํ ์ก๋์ง ์๋นํ ๋ง์กฑํฉ๋๋ค. tsconfig๊ฐ ๋์ค๋ฉด ๋ ํ์ํ์ง๋ง ๊ทธ๋๊น์ง ๊ฐญ์ ๋ฉ์ฐ๊ณ ๋ฌผ๋ก 1.5 ์ด์ ์ TypeScript ์ปดํ์ผ๋ฌ ๋ฒ์ ๊ณผ ํธํ๋ฉ๋๋ค.
์ถ์ : ์ค๋ ๋ ๋ฒ์ ๋ฒ๊ทธ๋ณด๊ณ ๊ฐ ์์์ผ๋ฏ๋ก ์ค๋ ๋ฐค 4.0.1์ ํธ์ํด์ผํฉ๋๋ค.
์ฐธ๊ณ ๋ก VS2015 RTM์๋ TypeScriptCompile์ ๋นํ์ฑํํ๋ ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
๋ฅผ .csproj
์ ์ถ๊ฐํ์ญ์์ค (์ : ์ฒซ ๋ฒ์งธ <PropertyGroup>
.
๊ฐ์ฌ.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐธ๊ณ ๋ก VS2015 RTM์๋ TypeScriptCompile์ ๋นํ์ฑํํ๋ ๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
๋ฅผ.csproj
์ ์ถ๊ฐํ์ญ์์ค (์ : ์ฒซ ๋ฒ์งธ<PropertyGroup>
.