我正在Visual Studio 2017中开发一个angular cli v6项目,并注意到正在为我的打字稿的 some 生成不需要的.js和.js.map`文件文件放在同一文件夹中。 (我不想生成任何内容)
我注意到以角度元素(“服务”,“解析器”,“组件”,“指令”)命名的文件夹中的任何文件似乎都没有创建这些多余的文件。
例如,如果我在components文件夹中创建my-component.component.ts,则不会生成任何额外的js / js.map文件。
我的问题是双重的:
项目文件结构(显示不需要的文件)
src
|-- app
| |-- components (no generated js/js.map files here)
| | |-- my-component.component.ts
| |
| |-- resolvers (no generated js/js.map files here)
| | |-- my-resolver.resolver.ts
| |
| |-- services (no generated js/js.map files here)
| | |-- my-service.service.ts
| |
| |-- types (has generated js/js.map files)
| | |-- my-type.type.js **dont want this file!**
| | |-- my-type.type.js.map **dont want this file!**
| | |-- my-type.type.ts
这是我的tsconfig.json
文件
ClientApp / tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
ClientApp / src / tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
ClientApp / src / tsconfig.spec.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"baseUrl": "./",
"module": "commonjs",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
ClientApp / e2e / tsconfig.e2e.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/e2e",
"baseUrl": "./",
"module": "commonjs",
"target": "es5",
"types": [
"jasmine",
"jasminewd2",
"node"
]
}
}
答案 0 :(得分:3)
这是由于某些过程调用tsc命令时使用的配置与您在问题中给出的配置不同而引起的。
如果这是angular-cli,我会感到惊讶,因此我怀疑是Visual Studio本身。
在Visual Studio项目设置中,查找打字稿选项,然后尝试在保存/相似状态下禁用编译
此外,如果存在其他配置导致不正确的行为,则值得在项目目录中检查其他tsconfig文件。
当然,您需要手动删除这两个文件,并查看它们是否在进行任何更改后恢复。
答案 1 :(得分:2)
首先,这就是TypeScript的工作方式。当您运行“ tsc”命令时,TypeScript会编译(转换)为JavaScript,这就是生成.js文件的原因。如果您查看已编译的.js,则将看到以最佳JavaScript方法编写的代码。
第二,.map文件是出于不同的原因而提供的。主要用于调试,例如在Chrome开发工具中进行调试等。请参考以下链接:What is a TypeScript Map file?
如果您仍然不希望使用.map文件,则可以在tsconfig.json中将“ sourceMap”更改为false。