在项目的某些区域中,从 .ts 生成了不需要的 *.js 和 *.js.map 文件

问题描述 投票:0回答:4

我正在 Visual Studio 2017 中开发一个 Angular cli v6 项目,并注意到同一文件夹中的 some 打字稿文件正在生成不需要的 .js 和 .js.map`文件。 (我不想要任何生成的)

我注意到以角度元素(“服务”、“解析器”、“组件”、“指令”)命名的文件夹内的任何文件似乎都不会创建这些额外的文件。

例如,如果我在 Components 文件夹中创建 my-component.component.ts,则不会生成额外的 js/js.map 文件。

我的问题有两个:

    决定是否生成这些额外文件的标准是什么?
  1. 如何防止它们生成

项目文件结构(显示不需要的文件)

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" ] } }
    
typescript visual-studio-2017 angular-cli angular-cli-v6
4个回答
4
投票
这将是由于某些进程调用 tsc 命令且配置与您在问题中给出的配置不同而引起的。

如果这是 Angular-cli,我会感到惊讶,所以我的怀疑是 Visual Studio 本身。

在您的 Visual Studio 项目设置中查找打字稿选项,并尝试禁用保存时编译/类似

此外,值得检查项目目录中是否有任何其他 tsconfig 文件,以防存在其他配置导致错误行为。

当然,您需要手动删除这两个文件并查看它们在进行任何更改后是否会回来。


3
投票
首先,这就是 TypeScript 的工作原理。当您运行“tsc”命令时,TypeScript 会编译(转换)为 JavaScript,这就是生成 .js 文件的原因。如果您查看编译后的 .js,您将看到您的代码,以尽可能最好的 JavaScript 方式编写。

其次,.map 文件的提供有不同的原因。主要用于调试,如 Chrome 开发工具等。请参考此链接:

什么是 TypeScript 映射文件?

如果您仍然不需要 .map 文件,您可以在 tsconfig.json 中将“sourceMap”更改为 false。


2
投票
对我有用的是将

noEmit: true

sourceMap: false
 添加到我的 
ts.config.json
 文件中。


0
投票
如果您使用 Visual Studio Code,请转到设置: 第1步:搜索“编译” 步骤2:进入“编译英雄配置”设置 步骤3:打开compile-hero像图像

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.