WebStorm tsconfig.json 似乎没有更新正确的文件

WebStorm tsconfig.json appears to not update the correct files

我正在使用 TypeScript 开发 node.js 应用程序。

我在项目的根文件夹中创建了一个 TypeScript 文件。我 运行 tsconfig 它似乎更新了 dist 文件夹。但是,当我 运行 应用程序时,我收到一条错误消息,指示未定义函数。

这里是事情变得混乱的地方:我的 src 文件夹中似乎有旧版本的 .js.map 文件,与我的源文件位于相同的目录中相同的名字。这个 .js 文件似乎有一个旧版本的文件,缺少必要的功能(class 方法),与我的 /dist 文件夹中的当前版本不同。

在一天结束时,我正在尝试 运行 我的 /dist 文件夹中文件的调试器,并在我的 /src TypeScript 文件中设置断点。

这是我在 /src 文件夹中看到的文件结构示例(此 js 文件不是当前文件):

这是我的 /dist 文件夹的文件结构示例,其中包含已转换的 js 代码:

此外,这里是项目的 Web 应用程序(其余)部分的调试器设置:

最后,这里是 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"
  ]
}
  1. 我想知道哪里出了问题,导致它读取了错误的js文件,而不是/dist文件夹中的文件?

  2. 我该怎么做才能解决此问题以指向 /dist 文件夹。我以为我设置的调试器设置会这样做,但事实并非如此。

更新:我删除了在 src 文件夹中生成的 .js 文件,它们最终返回到该文件夹​​,并且在进行其他更改后它们不是最新的。我不确定是什么生成了这些文件;它是 webstorm 中的设置还是 tsconig.json?

有些地方看起来不对劲。当我打开 dist 文件夹中的其中一个文件时,我发现以下代码而不是 JS 代码:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=group.js.map

这不是我所期待的,因为我期待看到转译后的 js 代码。

您在您的包含和 rootDir 中声明 src,所有内容都应相对于 rootDir 声明,但在这种情况下您可能不需要包含或excludes 因为无论如何你都在 src 中包含了所有内容。 compileOnSave 选项是在您删除文件时生成文件的原因,因为已设置 watcher 来这样做。您还混用了 targetlib javascript 版本。

如果您已经在使用 types 属性,则无需明确排除 @types

If types is specified, only packages listed will be included.

这是您可以尝试的清理配置

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "ES5",
    "moduleResolution": "node",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "types": ["reflect-metadata"],
    "lib": ["ES5"],
    "sourceMap": true,
    "inlineSources": true,
    "pretty": true,
    "outDir": "dist",
    "rootDir": "src",
    "noLib": false
  },
  "compileOnSave": false
}