Typescript 在WebStar中远程调试坞箱容器中的膝关节炎应用程序(Type Script)
问题:我正在尝试使用KoaJS、Typescript和Docker设置一个新的NodeJS项目。安装程序按计划进行,但是远程调试给我带来了一些问题——或者至少对我的理解是这样的 如果我启动应用程序并使用Webstorm中的“attachtonode.js/Chrome”调试设置,调试器就会工作。。。在某种程度上。我遇到了断点,但相同的文件(即kernel.ts)再次从docker workdir(在Webstorm中)打开 看起来是这样的:Typescript 在WebStar中远程调试坞箱容器中的膝关节炎应用程序(Type Script),typescript,docker,debugging,remote-debugging,koa,Typescript,Docker,Debugging,Remote Debugging,Koa,问题:我正在尝试使用KoaJS、Typescript和Docker设置一个新的NodeJS项目。安装程序按计划进行,但是远程调试给我带来了一些问题——或者至少对我的理解是这样的 如果我启动应用程序并使用Webstorm中的“attachtonode.js/Chrome”调试设置,调试器就会工作。。。在某种程度上。我遇到了断点,但相同的文件(即kernel.ts)再次从docker workdir(在Webstorm中)打开 看起来是这样的: 此外,在跳过断点之后,额外添加的断点不会显示任何效
此外,在跳过断点之后,额外添加的断点不会显示任何效果 设置: DockerFile
FROM node:11.1.0-alpine
WORKDIR /share/example
COPY package.json .
RUN npm install --quiet
COPY . .
Docker公司
version: '3'
services:
web:
container_name: example_web
build: .
command: npm run debug
volumes:
- .:/share/example
- /share/example/node_modules
ports:
- "3000:3000"
- "9229:9229"
package.json脚本
"debug": "nodemon --inspect=0.0.0.0:9229 -e ts,tsx --exec node -r ts-node/register ./src/kernel.ts",
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es2017",
"moduleResolution": "node",
"noImplicitAny": true,
"outDir": "./dist",
"sourceMap": true,
"inlineSources": true
},
"include": [
"./src/**/*"
]
}
问题:这种设置可能吗?编译typescript并让应用程序使用编译的js运行,并使用typescript文件中设置的断点进行调试
我怀疑我的typescript配置可能是罪魁祸首。Webstorm不理解docker容器中的kernel.ts与打开的文件相同。。。或者webstorm完全理解,但我的配置只是。。。缺乏
Ps:我尝试了没有Typescript的相同设置,效果很好(即远程调试,不从docker workdir打开同一个文件,而是直接跳到设置断点的文件)。因此-我猜-typescript配置缺少,或者我有一个概念上的误解。好的。问题解决了
其实变化不大。我现在让Typescipt在启动应用程序之前编译文件(使用JetBrains/Webstorm文件查看器)
并将Json脚本命令更改为:
"nodemon --inspect=0.0.0.0:9229 ./dist/kernel.js"
现在一切正常
编辑:我猜生成的js文件的sourcemap指向“实际源”——docker容器中的文件——而不是workdir中的“源”。在主机上编译TS文件并只指向已编译的js版本就可以了