我有几个文件要用脚本编译.这些文件依赖于paths compile选项来解析其模块.由于我想专门针对这些文件,我必须将它们提供给tsc(因为我不想为这个任务创建一个单独的tsconfig.json来针对这些文件)

我已经研究过将--path参数传递给tsc的选项,但这是不允许的(error TS6064: Option 'paths' can only be specified in 'tsconfig.json' file.)

在使用paths选项时,我是否可以只编译特定的.ts个文件?

Update (22-06-17)

根据要求,提供一些具体示例:

tsconfig.json文件中的相关设置如下:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "Components/*": [
        "./src/Components/*"
      ]
    }
  }
}

因此,相关的部分是路径设置,您可以在其中创建从特定目录导入文件的速记.所以你可以导入一个像import {header} from 'Components/header.ts'这样的文件,而不是import {header} from '../../Components/header.ts'

但是我需要从命令行编译特定的文件.但如果我try :

tsc --project tsconfig.json entryFile.ts

它会告诉我错误:

error TS5042: Option 'project' cannot be mixed with source files on a command line.

如果我try 向cli提供paths选项,则会出现以下错误:

error TS6064: Option 'paths' can only be specified in 'tsconfig.json' file.

推荐答案

在命令行中指定输入文件将使tsconfig无效.json.

在命令行上指定输入文件时,tsconfig.json文件被忽略.

TypeScript docs岁开始.

所以,除了使用tsconfig,没有其他 Select .json具有适当的文件"include"(或exclude)规范.好消息是,在相同的文档中,您会发现:

一只松鼠.json文件可以使用extends属性从另一个文件继承配置.

因此,您要做的是用如下内容覆盖Tconfig的include属性:

{
  "extends": "./tsconfig.json",
  "include": [
      "src/root/index.ts"
  ]
}

所以你可以制作一个脚本:

  1. 使用所需的"include"属性创建临时"extends tsconfig"文件
  2. 调用tsc,并将--project指定为临时tsconfig

有人可能会说这非常复杂,并质疑他们为什么决定不适当地支持这种情况.然而,问题仍然是,人们只想编译一个项目的一个文件.在开发过程中,您可以使用watch(-w)选项编译更改文件,在构建完整的项目时,您可能希望编译完整的项目.

Typescript相关问答推荐

类型脚本中的Gnomeshell 扩展.如何导入.ts文件

Angular 行为:属性类型从SignalFunction更改为布尔

编剧错误:正在等待Expect(Locator).toBeVisible()

我可以以这样一种方式键入对象,只允许它的键作为它的值吗?

是否可以判断某个类型是否已合并为内部类型?

通过泛型函数本身推断受约束的泛型参数的类型脚本问题

声明文件中的类型继承

如何在Angular 服务中制作同步方法?

如何从一个泛型类型推断多个类型

回调函数中的TypeScrip类型保护返回Incorect类型保护(具有其他未定义类型的返回保护类型)

Angular NG8001错误.组件只能在一个页面上工作,而不是在她的页面上工作

对于VUE3,错误XX不存在于从不存在的类型上意味着什么?

如何在TypeScrip中使用数组作为字符串的封闭列表?

来自枚举的<;复选框和组件列表

TS不能自己推断函数返回类型

如何提取具有索引签名的类型中定义的键

带动态键的 TS 功能

Typescript 编译错误:TS2339:类型string上不存在属性props

如何从 Select 元素中删除选项

是否可以从 TypeScript 的类型推断中排除this?