- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下目录结构:
.
├── tsconfig.json ("module": "CommonJS")
└── foo/
├── node-file.ts
└── bar/
├── browser-file.ts
└── tsconfig.json ("module": "esnext")
根
tsconfig.json
有
module
设置为
CommonJS
因为我希望我的大部分文件都为 Node.js 编译。但是里面
bar
,我希望文件编译为 JavaScript 模块,所以我设置了
module
至
esnext
.
tsc
从根本上,我希望
node-file.ts
编译为
CommonJS
模块和
browser-file.ts
编译为 JavaScript 模块。但这不是我得到的。看来
tsc
完全无视
foo/bar/tsconfig.json
并且只捡起根
tsconfig.json
.
tsc --watch
,所以我试图避免必须运行两个不同的
tsc
进程来编译两个不同的目标。对我来说,运行单个
tsc
和嵌套的
tsconfig.json
文件对我来说应该给我想要的结果。)
最佳答案
TypeScript 只使用一个 tsconfig.json
并且不会自动使用子目录的 tsconfig.json
对于那里的文件。但是,您可以使用 project references为了这。
创建这样的目录结构:
.
├── tsconfig.json
├── tsconfig.settings.json (optional)
└── foo/
├── node-file.ts
├── tsconfig.json ("module": "commonjs")
└── bar/
├── browser-file.ts
└── tsconfig.json ("module": "esnext")
tsconfig.json
{
"files": [],
"references": [
{"path": "./foo"},
{"path": "./foo/bar"}
]
}
这是根
tsconfig.json
.当您运行时
tsc --build
(见下文)在根目录中,TypeScript 将构建引用的项目
./foo/tsconfig.json
和
./foo/bar/tsconfig.json
.
"files": []
是制止意外
tsc
s 没有
--build
从尝试编译根目录中的所有内容,这会出错但会创建多个
.js
文件在可能不正确的地方。
tsconfig.settings.json
(可选的)
{
"compilerOptions": {
"strict": true,
"noImplicitReturns": true
}
}
你可以把配置通用到
foo
和
foo/bar
并使用
extends
扩展此配置以减少重复。请注意,此处的所有相对路径都将相对于
tsconfig.settings.json
解析。扩展时,类似
"outDir": "dist"
可能无法按预期工作。
foo/tsconfig.json
{
"extends": "../tsconfig.settings.json",
"exclude": ["bar/**/*.ts"],
"compilerOptions": {
"module": "commonjs"
}
}
这是 CommonJS 文件的配置。它还扩展了通用配置并排除了
foo/bar
中的文件.
foo/bar/tsconfig.json
{
"extends": "../../tsconfig.settings.json",
"compilerOptions": {
"module": "esnext"
}
}
这与
foo
非常相似的配置。
foo
和
foo/bar
同时,从根目录使用构建模式:
tsc --build # or tsc -b
# Watch mode:
tsc --build --watch # or tsc -b -w
来自
the handbook :
A long-awaited feature is smart incremental builds for TypeScript projects. In 3.0 you can use the
--build
flag withtsc
. This is effectively a new entry point fortsc
that behaves more like a build orchestrator than a simple compiler.Running
tsc --build
(tsc -b
for short) will do the following:
- Find all referenced projects
- Detect if they are up-to-date
- Build out-of-date projects in the correct order
You can provide
tsc -b
with multiple config file paths (e.g.tsc -b src test
). Just liketsc -p
, specifying the config file name itself is unnecessary if it’s namedtsconfig.json
.
tsc -b foo # or cd foo && tsc
tsc -b foo/bar # or cd foo/bar && tsc
请注意,这是一些仅限构建的标志和
you cannot override compiler options with command-line arguments .
关于TypeScript `tsc` 没有在子目录中提取 tsconfig.json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64626846/
起初:我知道命令行中tsc和tsc -w的区别。这不是问题,而是一种特殊情况: 在 VS Code 的 tsconfig 中,我通过设置 "watch":true 启用了观察器。这是绝对想要的。但是现
我正在尝试为 file.ts 运行命令 tsc 以将此代码编译为 js 但我发现以下错误: tsc : File C:\Program Files\nodejs\tsc.ps1 cannot be l
我正在尝试将我的 TypeScript 项目转换为 JavaScript,但是,似乎有些不对劲。我将项目配置为通过 "module":"ES6" 解析为 ES6 模块(又名 ESM)设置,但不能解决问
我有 typescript ,并使用别名。 这是tsconfig.json的一部分 "compilerOptions": { "baseUrl": "./src", ... }, 通过设置基
我在一个项目上使用 typescript ,所有文件都可以用 tsc 正常编译,我正在使用 watch 标志来查找更改。我遇到的问题是,当我创建一个新文件时,tsc 没有获取新文件,我必须退出 tsc
当我使用 tsc --declaration 或 tsconfig.json 声明为 true 生成我的定义文件“.d.ts”时,生成的文件不包括 声明模块“我的模块”{... 这对“vscode”来
我有一个名为 test.ts 的简单 hello world 文件,其中包含以下内容: export class Hello { constructor() { console.log("
我刚刚将 TypeScript 安装为 Node.js 包,令我惊讶的是它似乎可以立即运行。但是我找不到拦截它可能生成的任何消息的方法。使用存在故意错误的 greeter.ts 文件执行以下操作 ts
我有这个: $ tsc -m amd --outFile dist/out.js lib/index.ts lib/index.ts(87,48): error TS1005: ';' expecte
我很惊讶这不在我能找到的文档中 - 但是有什么方法可以告诉 tsc 对目录及其子目录中的所有文件运行而无需经过整个 tsconfig.json 设置? 最佳答案 据我所知没有。在没有 tsconfig
我想知道是否有人知道有关发生上下文切换时 Linux 中的时间戳计数器的更多详细信息?直到现在我的观点是,TSC 值在每个时钟周期内只增加 1,无论是在内核模式还是在用户模式下都是独立的。我现在使用
使用: inline uint64_t rdtsc() { uint32_t cycles_high; uint32_t cycles_low; asm volatile ("CPUID\
我以独立于生态系统的方式编写 typescript 代码。我决定在导入中包含文件扩展名,以匹配网络和 Deno。 import xyz from "./foo.ts"; 如何让 typescript
首先,我已经准备好了this sample GitHub repository作为重现我的问题的最低要求。 我遇到了 tsc 无法将我的 TypeScript 编译为 JavaScript 的问题。
tsc 是否有任何标志使其更详细地说明它正在做什么?我找到了 --terse 和 --verbose 引用,但不确定这些是旧标志还是提议的标志,因为它们都不起作用。 例如,我想看看它正在处理哪些文件。
我是 tsconfig.json 配置的新手,但我只是想像它应该的那样将我的 src 目录编译为编译的 javascript,但它只是没有创建 outDir 包含编译代码的文件夹。 这是我的tscon
我正在尝试使用 tsc 为一些现有的 javascript 代码自动生成 typescript 声明文件。 typescript 编译器给了我一些我不明白的错误(在这种情况下为 TS9005)。是否有
我希望将单个 .ts 文件编译为标准输出,如下所示: tsc foo.ts > foo.js 这有可能吗?我想在不使用 tsconfig.json 文件的情况下控制输出的位置。 最佳答案 见 http
TypeScript 的维基百科页面提到编译器本身是用 TypeScript 编写的。 这怎么可能? TypeScript 转译为 JavaScript,而 JavaScript 通常由 Web 浏览
我正在使用 TSC ME240 打印机打印标签。 标签设计有公司标志、文字部分和条形码。 条形码和文本打印得很好,但 Logo 没有打印, Logo 是存储在打印机内存中的 .bmp 图像。 每次打印
我是一名优秀的程序员,十分优秀!