在尝试调试mts文件时,我遇到了断点无法绑定的困难。代码可以运行并输出正确的结果(在这种情况下只是一堆console.log语句)
有趣的是,如果我先进入生成的mjs文件并在该文件中插入断点,它将接着捕捉到mts文件中的断点。如果mjs文件中没有断点,则调试器不会附加。
设置:
- Node 16.13.2或17.3.1
- Typescript 4.5
- package.json:未定义“type”
- launch.json:
{
"type": "node",
"request": "launch",
"name": "Launch Debug",
"program": "${workspaceFolder}/lib/src/debug.mjs",
"preLaunchTask": "tsc: build - tsconfig.debug.json"
}
- tsconfig.json:
{
"compilerOptions": {
"target": "ES2020",
"lib": ["DOM", "DOM.Iterable", "ES2020"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"module": "ES2020",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"typeRoots": ["./types", "./node_modules/@types"]
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.mts"],
"exclude": ["node_modules", "types"]
}
- tsconfig.debug.json:
{
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": false,
"sourceMap": true,
"outDir": "lib"
}
}
有人能够在不将 package.json 中的 type 设置为 module 的情况下调试 mts 文件吗?或者我应该向 TypeScript 团队提交一个问题吗?
noEmit
。 - Aluan Haddad