Typescript导入语句不能在Docker容器中工作

我有一个用Typescript编写的项目,它使用jasmine-ts来运行一系列的testing。 我需要创build一个Docker容器来运行testing有几个原因。

虽然项目本地运行OK npm test

 c:\github\gareththegeek\corewar>npm test > corewar@0.0.26 test c:\github\gareththegeek\corewar > nyc jasmine-ts Started ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 503 specs, 0 failures Finished in 0.893 seconds 

当我containerise相同的文件夹,并从泊坞窗图像运行npm test ,Typescriptimport似乎不被认可。

 c:\github\gareththegeek\corewar>docker run corewar > corewar@0.0.26 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 

我的docker形象是如此基本:

 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" ] 

我真的不确定为什么泊坞窗容器行为不同于我本地npm test命令。 我将假设这是因为在本地我在窗口和docker集装箱不是。 但我真的不确定如何debugging这个。

任何人都可以给任何指针,为什么Typescriptimport不在docker工作,我也期待他们呢? 如果有任何帮助,我可以粘贴一些Typescript代码。

叹了口气忽略这个问题,我解决了这个问题,意识到我的包括提到interface而出于某种原因,Github中的文件夹是Interface

我通过vscode在本地重命名了所有文件夹,但是这个文件夹并没有更新git(即使其他人做了:/)。

我做了以下几点:

 cd parser git mv Interface ifacetemp git mv ifacetemp interface commit... push... 

这解决了这个问题,非常烦人。