TypeScript "저장시 컴파일"기능이 Visual Studio 2015에서 작동하지 않음


85

Visual Studio 2015로 업그레이드 한 후 "저장시 컴파일"기능이 작동하지 않습니다. .ts프로젝트에서 파일을 변경 하고 저장하면 IDE 하단의 상태 표시 줄에이라고 표시 Output(s) generated successfully되지만 생성 된 .js파일은 작동하지 않습니다. 변경하지 마십시오.

내가 시도한 것은 다음과 같습니다.

  • <Project>my 의 루트 요소에 다음을 추가합니다 .csproj.

    <PropertyGroup>
        <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
    </PropertyGroup>
    
  • 에서 "프로젝트의 일부가 아닌 TypeScript 파일 자동 컴파일"옵션을 선택 및 선택 취소합니다 Tools -> Options -> TypeScript -> Project.

    여기에 이미지 설명 입력

  • 내 프로젝트의 TypeScript Build 속성에서 "Compile on save"가 선택되어 있는지 다시 확인합니다.

    여기에 이미지 설명 입력

내가 무엇을 놓치고 있습니까?

참고로 TypeScript 컴파일 단계는 일반 빌드에 의해 트리거 될 때 예상대로 작동합니다.


JS 파일이 실제로 업데이트되지 않는지 확인하십시오. 'JS 미리보기'가 업데이트되지 않았지만 실제로 JS 파일이 업데이트되는 VS2013 문제가 발생했습니다. 코드가 업데이트되었는지 확인하려면 수동으로 엽니 다. 그 원인은 알려지지 않았지만 해결책은 VS를 종료하고 다시 여는 것이 었습니다. 아직 VS2015에서 TS 파일을 만들려고 시도하지 않았습니다.
Jason H

1
그들은 RTM을 위해 그것을 깨뜨 렸습니다. 이 질문을 참조하십시오 stackoverflow.com/questions/31559653/...
Simon_Weaver

1
Visual Studio를 관리자로 실행할 때 일합니다!
alisabzevari

@alisabzevari 제안 해 주셔서 감사하지만 관리자 권한으로 실행해도이 문제가 해결되지 않습니다.
Nathan Friend

답변:


140

나를 위해 이것은 다음과 같은 옵션이었습니다 tsconfig.json.

"compileOnSave": true,
"compilerOptions": { ... },

이 변경 사항을 적용하려면 Visual Studio를 다시 시작하십시오.


angular2를 사용하여 rc1에 대한 다른 많은 것들 중에서 내 typescript를 업데이트했으며 결국 이것이 내 문제라는 것을 알 때까지 자연스럽게 모든 것이 깨졌습니다. 1.8.10으로 업데이트 할 때까지 필요하지 않았습니다.
James

5
예, tsconfig.json에 옵션을 추가하고 프로젝트가 VS 솔루션에서 호스팅되는 경우 프로젝트를 다시로드합니다. 그런 다음 ts는 저장시 js로 컴파일됩니다.
ZZZ

1
추가 "watch": truecompilerOptions타이프 라이터 1.8.29.0으로 업데이트 2 비주얼 스튜디오 2015 나를 위해 일한
바히드 아미리

1
TypeScript 2의 어느 시점에서 Visual Studio는 이러한 설정을 .csproj파일에 유지하는 것에서 tsconfig.json. 프로젝트의 속성 TypeScript 페이지가 비활성화되지 않은 경우 Visual Studio 용 이전 버전의 TypeScript 도구가 설치되어 있고 microsoft.com/en-us/download/details.aspx?id=48593
cchamberlain

32

오늘이 문제를 발견했습니다. "watch":true최신 TypeScript 버전에서도 JSON을 통해 사용할 수 있는 새로운 컴파일러 옵션 을 사용하여 수정했습니다 .

{
  "compilerOptions": {
    "watch": true
  }
}

그런 다음 출력 창에 나타나는 다음 오류와 관련된 또 다른 문제를 해결해야했습니다.

Object doesn't support property or method 'watchFile'

내 시스템은 Visual Studio 2015 업데이트 1 (1.7) 과 함께 제공되는 최신 버전이 있다고 확신했지만 이전 버전의 TypeScript (1.0.x)를 사용하고있는 것으로 나타났습니다 . 이 문제가 발생하면 다음을 입력하여 쉽게 tsc 버전을 확인할 수 있습니다.tsc -v 하면 명령 프롬프트에서 .

그것이 말하는 경우 1.0.x또는 아무것도 <1.7, 그것 때문에 당신이 당신의 PATH 환경 변수에서 오래된 참조를 가지고 있다는 사실에 아마. Visual Studio에서 업데이트 될 때 TypeScript 패키지를 설치하는 데 사용되는 Microsoft SDK 폴더 내부를 확인하여 1.7 이상이 설치되어 있는지 확인합니다.

C:\Program Files (x86)\Microsoft SDKs\TypeScript

그렇지 않은 경우 그에 따라 업데이트하십시오. 열기 의 cPanel > 시스템 > 고급 > 환경 변수 를 선택 시스템 변수 및 클릭 편집 ; 목록을 검색하여 TypeScript 폴더에 대한 참조를 찾고 그중 하나를 변경하여 TypeScript가 가장 최근에 설치된 버전 ( 1.7또는 그 이상)을 가리 키도록하고 다른 복제를 삭제하십시오. 아래 스크린 샷도 참조하십시오.

여기에 이미지 설명 입력

자세한 내용 은 내 블로그 에서이 게시물 을 참조하십시오 .


1
win10의 경우 목록의 이름은 시스템 변수가 아니라 "Path"였습니다. 그것을 선택하면 (값은 긴 세미콜론으로 연결된 문자열입니다) 편집을 클릭하면이 답변에 표시된 모달 창이 나타납니다. 내 솔루션은 compileroptions> watch> true를 추가하는 것이 아니라 compileOnSave> true를 설정하는 것이 었습니다 (컴파일러 옵션에서 한 단계
올라감

1
저에게이 옵션을 설정하면 빌드 오류 JsErrorScriptException (0x30001)이 발생했습니다. 검색 후이 문제 github.com/Microsoft/TypeScript/issues/7362를 건너 왔습니다 . Miłosz Wierzbicki의 솔루션 ( "compileOnSave"설정)은 저에게 적합하지만 VS를 다시 시작한 후에 만 ​​작동합니다.
fikkatra

나는 같은 문제가 있었다. U와 @zedd는 저에게 많은 시간을 절약했습니다. 이 게시물도 도움이됩니다 : ryadel.com/en/… .
Dudi

8

해결책:

저에게는 이것이 다른 사람들에게도 마찬가지라고 확신합니다. 이것은 tsconfig.json의 실수로 인한 것입니다.

"compileOnSave": true를 추가해야합니다. 그러나 compilerOptions 내부가 아닌 전역 섹션에서.

Wrong:
{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "compileOnSave": true

  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

Correct:
{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"

  },
"compileOnSave": true,
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

친애하는,

Anders 둘 다 Basechat.


6

이 문제는 TypeScript Language Services확장 프로그램 에 대한 최신 업데이트를 통해 해결 된 것으로 보입니다 .

이 업데이트를 적용하는 방법에 대한 지침 은이 답변참조하십시오 .


2

제 경우에는 VS 2012와 함께 Visual Studio Community 2015를 설치했습니다. 저는 2012 년에 타이프 스크립트에 Web Essentials를 사용했는데 2015 년과 충돌하는 것처럼 보였습니다.

2012 년에 Web Essentials를 제거하면 문제가 해결되었습니다.


VS Community를 사용하고 있으며 Web Essentials를 제거하면 트릭이 생겼습니다. 감사합니다.
Ray

2

typescript 2를 사용하면 tsconfig에서 "outDir":을 삭제해야합니다. Visual Studio에서 나를 위해 버그를 수정하십시오.


outdir tsconfig는 어디에 있습니까? Thx
제이

@jay typescript의 구성 파일 tsconfig.json에 옵션이 표시되지 않습니까?
Yvan

1

프로젝트 속성-> "TypeScript Build"에서 "오류가보고 된 경우 출력을 내 보내지 않음"을 선택 취소 할 수도 있습니다. 확인하면 오류가 있거나없는 저장시 트랜스 파일을 비활성화하는 것 같습니다.


1

"compileOnSave": true,나를 위해 작동하지 않았다. 마침내 Visual Studio가 확장중인 "compileOnSave": true,다른 .json파일에 정의 된 값을 존중하지 않는다는 것을 알게되었습니다. 작동하려면 루트에 있어야합니다.


1

파일 즉, C : \ file.ts를 terminal/cmd찾아 입력하십시오.

tsc file.ts -w // watches for file changes and converts on save

1

프로젝트에 구성된 TypeScript 버전이 설치되어 있는지 확인하십시오. 어떻게 든 TypeScript 3.7이 설치되어 있지 않다는 경고를받지 못했지만 저장시 컴파일 기능이 자동으로 작동하지 않습니다.

TypeScript 3.7을 설치하면 다시 작동했습니다.


1

이것이 누구에게 도움이 될지 확실하지 않습니다.

나는 컴파일하는 데 문제가 있었지만 저장시 컴파일 중이었습니다. 모든 파일을 표시하도록 솔루션 탐색기 도구 모음을 토글하지 않았습니다.

파일이 거기에 있었고 프로젝트에 추가되기를 참을성없이 기다리고있었습니다.

여기에 이미지 설명 입력


0

여기서도 똑같은 문제입니다. Visual Studio 2015 업데이트 3 및 TypeScript 2.9.2.0을 사용하고 있습니다. 도구 / 옵션 / 프로젝트 및 솔루션 / 외부 웹 도구에서 $ (PATH)를 두 번째 위치로 업그레이드했습니다. 이러한 모든 구성으로 compileOnSave : true가 작동하지 않습니다. 해결 방법은 명령 줄을 열고 ng build --watch측면 에서 실행 하고 노드가 자동 컴파일을 처리하도록하는 것입니다.


0

Visual Studio 2019에서 비슷하지만 동일한 문제가 없었습니다.

  • 내 프로젝트는 TypeScript 2.9를 사용하도록 설정되었습니다.
  • TypeScript 3.8이 설치되어 있고 코드가 컴파일되었지만 저장시 컴파일되지 않았습니다.

이전 버전 인 TypeScript 2.9를 설치하고 VS를 다시 시작한 다음 생명을 얻었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.