问题标签 [tsc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
typescript - tsc --out 在我的文件中使用“导入”时出现奇怪的行为
我有两个打字稿文件,app.ts
和 `angular2.d.ts'(其中包含 angular2 的类型定义)
我的tsconfig.json
文件看起来像这样:
预期结果 -public/all.js
将包含已编译的 ts 文件。
实际结果 -src/app.js
创建文件,其中包含已编译的 ts 文件。
public/all.js
也被创建,但它只包含以下行:(
//# sourceMappingURL=all.js.map
即只是源映射,没有实际代码)
进一步调查时,有问题的行是:
import {Component, View, bootstrap} from 'angular2/angular2';
在src/app.ts
. 一旦我删除该行,一切都会正确编译。一旦我把它放回去 - 它会导致上述问题。
我究竟做错了什么?
typescript - 从 VisualStudio 发布打字稿时 8K 命令行限制
我在 Visual Studio 中有一个打字稿项目,可以在 IDE 中很好地编译和运行。
当我尝试在 Azure 中发布它时,VS 会启动 tsc 并将所有要编译的文件放在一个命令行中。我有大约 130 个 .ts 文件。平均文件长度约为 85(完整路径),我的命令行超过 8K 并被截断,因此 tsc 收到不完整的文件集并引发错误。
为了检查问题是否存在于 8K 中,我创建了 Subst 驱动器并缩短了所有路径。在此测试期间,Tsc 编译正常。
有人可以帮我解决这个问题吗?
typescript - typescript tsc 没有编译新创建的文件
我在一个项目上使用打字稿,所有文件都可以用 tsc 编译,我正在使用 watch 标志来查找更改。我遇到的问题是,当我创建一个新文件时,tsc 没有选择新文件,我必须退出 tsc 进程并重新启动它。这个标准是否真的很奇怪,如此出色的工具却缺少这样的基本功能。任何人都知道一种解决方法,所以我可以让 tsc 在不重新启动的情况下拾取和编译新创建的文件?
typescript - Typescript ES6 模块语法与环境 d.ts 模块
所以让我们想象一下我有一个 50 个文件模块,每个模块包含:
export class <SomeClassName> { /* content */ }
然后,我创建了一个根文件,通过重新导出所有文件来简化使用。所以它看起来像:
然后,我通过 TSC 运行它来执行一个针对“es5”的“通用”模块,并带有描述符输出。
到目前为止,一切都很好。我将我package.json
的名称my-module
目标index.js
作为模块的入口点输出。所以我现在决定在另一个打字稿项目中使用这个模块。
所以我为它进行了 npm 安装(让我们假装)npm install my-module
并且它都被引入了,所以我现在有了生成的 d.ts 文件,并且我有了实际的 commonjs 模块,所以我可以使用它。一切似乎都很好。
然后问题来了。然后我决定使用该模块:
import {SomeClass1} from 'my-module'
它像在 TS 世界中一样爆炸,它不知道与什么my-module
有关,好像我们回去看看输出的 index.js,它不包含环境模块。
所以问题来了,普通模块在包含模块名称时通常使用 package.json 作为参考点,但是 TS 使用 d.ts 文件。所以我想好吧,我需要将我的再导出包装index.ts
在一个模块中,所以我尝试:
export module "my-module" { /* all other re-exports */ }
但事实证明,您只能对环境模块使用字符串模块名称,并且只能将它们放在 d.ts 文件中,但是我的 d.ts 文件是从现有代码库生成的。
所以这是我的困境,我可以手动进入并在declare module "my-module
我的 d.ts 中添加一个包装器,但它不是很自动化,或者我确实喜欢使用 ES6 语法的博客文章并相对引用该文件,这最终会得到很多import {blah} from "../node_modules/my-module/dist/index"
,希望我们都能同意这有点愚蠢。
所以我找不到任何其他可以在自动化世界中工作的方法,因为当你使用 ES6 语法时,所有关于这个主题的博客文章和文档都使用相对文件导入,而不是从整个东西被编译和共享时导入通过 d.ts 文件。
那么这里有没有办法将我的重新导出包装在文本模块名称中?或者至少告诉 index.d.ts 包含在环境模块中?(请记住,它会为项目中的每个文件输出一个 d.ts 文件,但我们只关心通过 index.d.ts 导入模块,因为它会重新导出所有内容)。
typescript - tsc 1.5 还需要 --module 标志吗?
Typescript 1.5添加了对tsconfig.json
配置文件的支持,可以在其中指定诸如编译器选项之类的内容。
这是宣布 1.5 的博客文章中的一句俏皮话:
编译器现在支持“tsconfig.json”,这是一个允许您指定项目中的文件和要使用的编译器设置的新文件。
这让我认为--module
不再需要将标志添加到编译器。但是试图编译一个导出类的简单文件我得到了这个:
当一切正常运行tsc
时。--module commonjs
这是 ts 文件:
这是tsconfig.json
:
我的 Typescript 版本是 1.5.3,tsctest.ts
并且tsconfig.json
位于同一个文件夹中。
node.js - 无法在 OS X 中通过终端安装 tsc
我正在尝试安装 tsc,但是当我运行它时,我遇到了很多错误。
我现在尝试重新安装 node 和 npm 至少 3 次,但无济于事。我为我的 npm 将标志设置为详细,这就是我得到的:
我不知所措。我已经用谷歌搜索并访问了很多页面,这似乎对其他人来说都很好,或者他们只是有一个不同的错误。关于问题是什么的任何想法?
这是我当前的 bash_profile,安装了 node 和 npm:
如果还有什么需要帮助的,请告诉我,谢谢!
typescript - 如何将 Angular2 TypeScript 应用程序编译为单个文件?
我意识到我可以编译我的应用程序,tsc my_app.ts --target system
它会为每个导入的模块生成一个 SystemJS 包装的文件,这很棒,但它会生成匿名(无名)函数,所以我不能将它们连接到单个文件。
我想过提出这个问题“如何将 TypeScript 编译为命名的 SystemJS 模块”,但我的目标只是将我的 Angular2 应用程序编译为单个文件,无论是否是 SystemJS。
module - TypeScript 捆绑不适用于外部模块
我有一个示例 TypeScript 代码,我正在尝试使用typescript compiler (tsc)捆绑多个ts/tsx文件。
这是代码:
文件:ISample.ts
文件:Sample.ts
文件:tsconfig.json
当我运行命令时:
bundle.js已生成,但它完全是空白的。
观察:
当我将代码移动到内部模块时,问题不会发生
当我省略import/require语句并使用ISample类的声明时,问题也不会发生,但在这种情况下bundle.js不包含ISample类的代码
任何想法为什么会发生这种情况?
gulp - 在 vscode 中,使用 isWatching 的任务生成的错误在修复后并不总是被清除
我在 vscode (0.9) 中使用 gulp 任务来尝试从 typescript 和 tslint 中获取错误。
gulp 任务正在监视我的 ts 文件的更改,并在更改时同时运行 gulp-tslint 和 gulp-typescript。我还在 vscode tasks.json 和问题匹配器中定义了一个任务来解析结果。
错误被解析并正确报告到 vscode 中。然而,即使代码被修复和保存,它们有时也会被保留。
是否有一些额外的配置可以提供给 vscode 问题匹配器,以便它正确清除错误或者它是 vscode 错误?作为一种解决方法,有没有办法手动清除所有错误?我发现清除它们的唯一方法是重新启动 vscode,这不是很好。
请注意,如果任务不是监视任务而是简单执行,则此方法可以正常工作。
我的 vscode tasks.json
我的 gulp 任务定义:
typescript - tsc 未知编译器选项 allowNonTsExtensions
我error TS5023: Unknown compiler option 'allowNonTsExtensions'
在尝试运行tsc
一个项目时得到了。
这是我的tsconfig.json
文件。
在. typescript@1.6.2
_npm
链接到正在使用的项目。