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)
我想了解什么是错误的,导致它读取错误的js文件,而不是/dist文件夹中的文件?
我该怎么做才能解决这个问题,指向该/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代码.
src您在包含和中声明rootDir,所有内容都应该相对于 进行声明rootDir,但在这种情况下,您可能不需要包含或排除,因为无论如何您都包含了所有内容src。该compileOnSave选项是在您删除文件时生成文件的选项,因为watcher已设置这样做。您还混合了您的版本target和libjavascript 版本。
@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)
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |