将 .tsconfig 和 .tslint 文件移动到不同的目录

Posted

技术标签:

【中文标题】将 .tsconfig 和 .tslint 文件移动到不同的目录【英文标题】:Move .tsconfig and .tslint file to different directory 【发布时间】:2019-03-03 11:31:00 【问题描述】:

在我的 Angular CLI 项目中,我想将所有配置文件移动到一个我命名为“angular”的新文件夹中。代码编译并运行所有 npm 脚本,但我的 app 文件夹中没有出现任何 linting 或 typescript 错误。这是我正在尝试的文件夹结构:

 project
    │   tslint.config.json
    │   tslint.json    
    │
    └───src
         │   
         └───angular
         │   tsconfig.app.json
         │   tslint.json
         │     
         └───app
              │   app.module.ts
              │   app.component.ts

我的 angular.json 文件中的所有引用都已更新,并且没有错误,但 linter 工作的唯一位置是 'angular' 文件夹的内部!如何将其更改为指向我的“应用程序”文件夹? 我想要进行这种自定义的原因是为了让我几乎不使用的文件像这样保持在视野之外:

【问题讨论】:

为什么要首先移动这些文件?它违反了代码标准。 因为它在我的文件夹结构中看起来更干净,并帮助我专注于我的应用程序文件夹,隐藏了我几乎不使用的所有文件。 这可能对你有帮助:***.com/questions/36447910/… 【参考方案1】:

根据您的目录结构图像,我假设您正在尝试专门配置 VS Code 以提供语法高亮显示?

如果是这样,您可以为您的项目创建一个工作区特定的配置,明确定义 VS Code 可以在哪里找到 tslint.json 配置。默认情况下,VS Code 会在项目的根目录中查找 tslint 配置。为了设置您自己的工作区配置,您可以按照VS Code Documentation 中的说明进行操作。在我的 Mac 上,我选择以下菜单项:

代码 -> 首选项 -> 设置

从那里我选择:

“工作区设置”选项卡和扩展 -> 工作区设置侧边栏中的 TSLint

配置文件有一个属性,您可以在其中设置 TSLint 配置的路径,相对于项目的根目录。对你来说,这将是“./src/angular/tslint.json”

为了获得项目的 tslint 控制台输出,您必须明确定义 tslint 和 tsconfig 配置文件存在的位置,因为它们不在项目的根目录中:

tslint -c src/angular/tslint.json -p src/angular/tsconfig.json

我相信 VS Code 默认配置为使用本地安装的 Typescript 版本,具体取决于安装在 node_modules/typescript 目录中的版本。因此,您将继续收到基于您的本地 typescript 安装或全局安装的 typescript 版本的关于您的 typescript 错误的反馈。

打字稿文档指出:

目录中存在 tsconfig.json 文件表明该目录是 TypeScript 项目的根目录

因此,将您的 tsconfig.json 移动到项目根目录以外的任何地方都会违背您的 typescript 配置的预期性质,但是如果您的 tsconfig.json 不位于项目的根目录,您仍然可以通过调用(或创建一个 npm 脚本也一样):

tsc --project ./src/angular/tsconfig.json

假设您的 tsconfig.json 中有一个“包含”定义:


  "compilerOptions": 
    /* your compiler options */
  ,
  "include": [
    // source code for project is one directory up from tsconfig.json
    "../**/*",
  ]

【讨论】:

以上是关于将 .tsconfig 和 .tslint 文件移动到不同的目录的主要内容,如果未能解决你的问题,请参考以下文章

VSCode / tslint 不解析 tsconfig.json 中的路径

tslint 不排除角度项目中的 node_modules

Eslint/Tslint 配置帮助(不包括文件)

需要 gulp-tslint 时出错

如何避免 tslint 特定规则?

tslint.json 在 VS 代码中不起作用