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

use*_*300 6 node.js webstorm typescript

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

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

这里的事情让人感到困惑:我的文件夹中的.js.map文件的旧版本似乎与src我的源文件具有相同名称的目录相同.此.js文件似乎有较旧版本的文件缺少必要的功能(类方法),不同于我的/dist文件夹中的当前版本.

在一天结束时,我试图在我的/dist文件夹中的文件上运行调试器,并在我的/srcTypeScript文件中设置断点.

这是我在我的/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"
  ]
}
Run Code Online (Sandbox Code Playgroud)
  1. 我想了解什么是错误的,导致它读取错误的js文件,而不是/dist文件夹中的文件?

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

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

其他东西看起来不正确.当我打开dist文件夹中的一个文件时,我发现以下代码而不是JS代码:

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

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

Jak*_*ger 1

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

@types如果您已经在使用该属性,则无需显式排除types

如果指定了类型,则仅包含列出的包。

这是一个清理后的配置,您可以尝试

{
  "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
}
Run Code Online (Sandbox Code Playgroud)