我正在使用TypeScript开发一个基于node.js的应用程序。
我在项目的根目录中创建了一个TypeScript文件。我运行tsconfig
,它似乎更新了dist
文件夹。但是,在运行应用程序时,我遇到了一个错误,指示未定义一个函数。
这里的情况变得混乱起来:我的src
文件夹中似乎有旧版本的.js
和.map
文件,与同名的源文件在相同的目录下。在这个.js
文件中,似乎缺少必要的函数(类方法),不同于我/dist
文件夹中的当前版本。
归根结底,我想在/dist
文件夹中运行文件的调试器,并在/src
的TypeScript文件中设置断点。
以下是我在/src
文件夹中看到的文件结构示例(该js文件不是当前版本):
这是/dist
文件夹中经过转换的js代码所在的文件结构示例:
此外,这是项目中web应用程序(rest)部分的调试器设置:
最后,这是tsconfig.json
文件的示例:
{
"compilerOptions": {
"module": "commonjs",
"target": "ES5",
"moduleResolution": "node",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"types": ["reflect-metadata"],
"lib": ["ES6"],
"sourceMap": true,
"inlineSources": true,
"pretty": true,
"outDir": "./dist",
"rootDir": "./src/",
"noLib": false
},
"compileOnSave": true,
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"node_modules/@types"
]
}
我想了解是什么出了问题,导致它读取错误的js文件,而不是在
/dist
文件夹中的文件?我该怎么做才能修复这个问题,指向
/dist
文件夹。我认为我设置的调试器设置会做到这一点,但事实并非如此。
更新:我删除了src文件夹中生成的.js文件,它们最终返回到文件夹中,再次进行其他更改后,它们仍然不是最新的。我不确定是什么生成了这些文件;是WebStorm中的设置还是tsconfig.json中的设置?
还有一些东西看起来不对劲。当我打开dist文件夹中的一个文件时,我发现以下代码而不是JS代码:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=group.js.map
这不是我预期的结果,因为我预期看到的是转译后的js代码。
//# sourceMappingURL=group.js.map
是附加到JavaScript文件末尾以启用源映射的注释。 - lilezek