2017-11-23 4 views
0

jasmine-ts을 사용하여 일련의 테스트를 실행하는 Typescript으로 작성된 프로젝트가 있습니다. 몇 가지 이유로 테스트를 실행하려면 Docker 컨테이너를 만들어야합니다. 로컬 프로젝트 하다니Docker 컨테이너에서 Typescript 가져 오기 문이 작동하지 않습니다.

확인 npm test 실행 :

c:\github\gareththegeek\corewar>npm test 

> [email protected] test c:\github\gareththegeek\corewar 
> nyc jasmine-ts 

Started 
....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 


503 specs, 0 failures 
Finished in 0.893 seconds 

내가 같은 폴더를 containerise와 고정 표시기 이미지에서 npm test을 실행

가, 타이프 스크립트 수입이 인식하지 못하는 것 같습니다. 이 온다

c:\github\gareththegeek\corewar>docker run corewar 

> [email protected] test /usr/src/app 
> nyc jasmine-ts 


/usr/src/app/node_modules/ts-node/src/index.ts:307 
     throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset)) 
      ^
TSError: ⨯ Unable to compile TypeScript 
parser/Expression.ts (1,29): Cannot find module './interface/IExpression'. (2307) 
parser/Expression.ts (2,39): Cannot find module './interface/IToken'. (2307) 
parser/Expression.ts (3,30): Cannot find module './interface/ITokenStream'. (230 

내 고정 표시기 이미지는 기본이며 다음 고정 표시기 용기 내 로컬 npm test 명령에 다르게 작동하는 이유

FROM node:carbon 

# Create app directory 
WORKDIR /usr/src/app 

# Install app dependencies 
COPY package*.json ./ 

RUN npm install 

# Bundle app source 
COPY . . 

CMD [ "npm", "test" ] 

정말 확실 해요. 나는 그것이 지역적으로 내가 창문 위에 있고 항만 객 컨테이너가 아니기 때문에 그것이라고 가정 할 것이다. 그러나 나는 이것을 디버깅하는 방법을 확실히 모르겠습니다.

아무도 Typescript 가져 오기가 내가 기대하는 방식으로 도커 내에서 작동하지 않는 이유에 대한 모든 설명을 제공 할 수 있습니까? 어떤 도움이된다면 Typescript 코드 일부에 붙여 넣을 수 있습니다.

답변

1

한숨 내가 내이 Github에서의 폴더가 Interface이었다 어떤 이유로 반면 interface 언급 포함 실현하여 문제를 해결,이 질문을 무시합니다.

저는 모든 폴더를 vscode를 통해 로컬로 이름을 바꿨지만이 파일은 git를 업데이트하지 않았습니다.

cd parser 

git mv Interface ifacetemp 
git mv ifacetemp interface 

commit... 
push... 

이 문제를 해결, 매우 성가신 :

나는 다음을했다.