gpt4 book ai didi

node.js - Typescript 导入语句在 Docker 容器中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:34 25 4
gpt4 key购买 nike

我有一个用 Typescript 编写的项目,它使用 jasmine-ts 来运行一系列测试。由于一些原因,我需要创建一个 Docker 容器来运行测试。

虽然项目在本地运行正常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

当我容器化同一文件夹并从 docker 镜像运行 npm test 时,Typescript 导入似乎无法被识别。

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

我真的不确定为什么 docker 容器的行为与我的本地 npm test 命令不同。我假设这是因为本地我在 Windows 上,而 docker 容器不是。但我真的不确定如何调试它。

任何人都可以指出为什么 Typescript 导入在 docker 中无法按照我期望的方式工作吗?如果有帮助的话,我可以粘贴一些 Typescript 代码。

最佳答案

叹息忽略这个问题,我通过意识到我的包含引用了interface而解决了这个问题,而由于某种原因Github中的文件夹是Interface

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

我做了以下事情:

cd parser

git mv Interface ifacetemp
git mv ifacetemp interface

commit...
push...

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

关于node.js - Typescript 导入语句在 Docker 容器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com