0

对于基于 Alpine 的节点应用程序,我有以下 docker 声明。

FROM node:8-alpine

RUN npm install typescript
RUN npm install ts-node
RUN npm install puppeteer

CMD [ "/bin/sh" ]

在里面我试图启动 puppeteer 来渲染一些页面。我正在安装外部 ts 文件只是为了像这样执行它:

docker run -v "$(pwd):/test/" --net host -it test-chromium

当我试图在这个命令中执行时

npx ts-node /test/render.ts

它只是显示 ts-node 已安装并在其后挂起。什么都没有发生。要检查这是否是特定于铬的运行问题,我尝试在 REPL 模式下仅执行 ts-node,如下所示:

npx ts-node

并直接通过 ./bin

./node_modules/.bin/ts-node

什么都没发生。输入后控制台只是挂起并且没有显示输入提示。即使在修改 docker 以直接从声明中执行它之后,也没有任何变化。

我错过了什么?

4

1 回答 1

0

找到了原因。它是 ts-node 挂起而没有tsconfig.json. 没有它,当我试图从根目录运行它时,打字稿会遍历所有文件夹以获取要编译的文件。tsconfig.ts添加并设置适当的限制后,脚本开始执行。

github上对这个问题的一些评论:

https://github.com/TypeStrong/ts-node/issues/690#issuecomment-424178198

于 2019-01-21T14:04:03.400 回答