2017-03-09 7 views
1

나는 같은 일을하고자하는 자바 스크립트/타이프 라이터 라이브러리를 구축했습니다 :패키지 이름의 하이픈 때문에 TypeScript 오류가 혼동됩니까?

  • 자바 스크립트와 타이프 라이터 중 하나를 호출 할 때 RequireJS를 통해 접근
  • 자바 스크립트와 타이프 라이터 중 하나에서라는 전역 변수 전체 단위 테스트 적용 범위가 있음

이것은 Webpack을 사용하여 패키지 된 UMD이며 여기 NPM 패키지 (https://www.npmjs.com/~typed-contract)로 배포됩니다. 제가 작업중인 지점의 전체 소스를 원한다면 여기에서 찾을 수 있습니다 https://github.com/randarp/typed-contract/tree/feature/Issue_5.1.

제 문제는 모든 시나리오에서 작동하도록 할 수없고 패키지 이름의 하이픈 (즉, 형식화 된 계약서)이 범인이라는 것입니다. 몇 가지 예 : 타이프에서

  • , \ 코드 \ TypedContract.Specs Contract.TypeScript.requireJS.spec.ts \
    • 나는 "입력 계약"에서 수입 {계약을} 사용하는 경우 다음 내 단위 테스트는 실패하지만 WebStorm transpiler는 정확하다고 말합니다.
    • "typedcontract"에서 import {contract}를 사용하면 내 장치 테스트는 통과하지만 Transiler는 Error : (4, 26) TS2306 : File 'C : /Projects/TypedContract/Code/typedcontract.d를 표시합니다. ts '는 모듈이 아닙니다.
  • 이 문제를 테스트하기 위해 외부 NodeJS 응용 프로그램이 있습니다. 이 경우 :
    • 나는 그것이로드되지 않습니다 내가 'typedcontract'에서 수입 {계약을} 사용하는 경우
    • 예상대로 작동 'typedcontract'에서 수입 {계약을} 사용하는 경우 node_modules에서 NPM 패키지를 찾을 수 없으므로

나는 누군가가 갈 수 있습니다 무엇인지에 몇 가지 단서를 제공하지 않는 한이 패키지를 더 이상 사용하고 하이픈없이 새로 시작할 필요가 있다고 생각하기 시작하고 있기 때문에 ISN 내 "순열에 의해 프로그래밍" 일하고있어.

답변

0

글쎄, 몇 번 시도가 실패하면, 새 패키지를 만들고 이전 패키지를 사용하지 않습니다. 이제

https://www.npmjs.com/package/typedcontract에서 찾을 수 있습니다.

하이픈이있는 모든 시나리오에서 제대로 작동하지 않을 수 있으므로 최상의 장기적인 솔루션처럼 보입니다.

0

I'm starting to think I need to deprecate this package and start a new one without a hyphen

  • 나는 -와 함께 작동합니다.
  • WebStorm을 너무 많이 신뢰하지 마십시오. TSC는 귀하의 단일 진실이어야합니다.

then my unit tests fail

아마도 단위 테스트는 잘못이다.