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"
]
}
我想知道哪里出了问题,导致它读取了错误的js文件,而不是/dist
文件夹中的文件?
我该怎么做才能解决此问题以指向 /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
来这样做。您还混用了 target
和 lib
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
}
我正在使用 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"
]
}
我想知道哪里出了问题,导致它读取了错误的js文件,而不是
/dist
文件夹中的文件?我该怎么做才能解决此问题以指向
/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
来这样做。您还混用了 target
和 lib
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
}