从 Windows 命令行运行 tsc

新手上路,请多包涵

npm 已安装并正在从 IntelliJ IDEA 15 中积极使用

我的目标是在 IntelliJ 中为我的 TypeScript 源代码生成类型,但我想学习使用 Windows 命令行,因此我可以显式指定命令行选项来修补以了解每个选项的作用。我对通过谷歌搜索找到的与设置和使用相关的各种花絮感到困惑……我确信我错过了一些非常基本的东西,那些博客或回答问题的人认为这是常识…… .

这是我尝试过的以及我所看到的……

第 1 步:安装打字稿:

npm install -g typescript

这导致在我的系统上安装以下文件/目录结构:

 C:\Users\{my user id}\AppData\Roaming\npm\node_modules\typescript
|---bin
|   |--- tsc
|   |--- tscserver
|---lib
|   |--- lib.core.d.ts
|   |--- ...
|   |--- typescriptServices.js
|--- .npmignore
|--- ...
|--- ThirdPartyNoticeText.txt

第 2 步:天真地尝试直接从 Windows 命令行运行 tsc

我通过谷歌搜索找到的示例采用以下形式:

编译单个文件:

tsc app.ts

上面的例子来自 http://www.primordialcode.com/blog/post/typescript-command-line-compiler

如图所示,这不起作用,因为:

  1. tsc 的安装目录不在 Windows 上 Path C:\Users\{my user id}\AppData\Roaming\npm\node_modules\typescript\bin 显然这很容易通过更改 Window 和/PATH 来解决或解决在输入要执行的命令时限定 tsc 文件的路径。

  2. 更重要的是 tsc 文件不是 Windows 可执行文件…… #! Unix 脚本( shebang )是一个死的赠品。

检查 tsc 文件:

 #!/usr/bin/env node
require('../lib/tsc.js')

第 3 步:尝试从节点命令提示符运行 tsc

C:\> node

> tsc

 ReferenceError: tsc is not defined
at repl:1:1
at REPLServer.defaultEval (repl.js:252:27)
at bound (domain.js:287:14)
at REPLServer.runBound [as eval] (domain.js:300:12)
at REPLServer.<anonymous> (repl.js:417:12)
at emitOne (events.js:82:20)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:210:10)
at REPLServer.Interface._line (readline.js:549:8)
at REPLServer.Interface._ttyWrite (readline.js:826:14)

^C

好的…让我们指定 tsc 脚本的完整路径:

C:\> node

> C:\Users\{my user id}\AppData\Roaming\npm\node_modules\typescript\bin\tsc

 ...

从字面上看,唯一的输出是 ... 当指定 tsc 脚本的完整路径时……我猜它需要参数……但是点击 tab 键显示了似乎是 节点 命令的列表(不是 tsc 命令)……所以我不知道这里发生了什么……

现在我被困住了

我需要安装/配置/使用什么环境来调用 tsc (如:http: //www.primordialcode.com/blog/post/typescript-command-line-compiler )?

和/或

是否有教程或网站可以帮助我从一个干净的 Windows 系统转到能够从命令行使用 TypeScript 编译器为我的 TypeScript 源文件生成类型?

原文由 Neoheurist 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
2 个回答

您不应将 TypeScript 的 bin 文件夹直接添加到 Windows PATH 。正如您所注意到的,该 bin 文件夹中的文件不能直接从命令行执行。

相反, npm 为全局安装包中的每个配置的可执行文件创建一个 .cmd 脚本并将其放入:

 %APPDATA%\npm

尝试更新您的 PATH 以包含此文件夹,重新打开命令行并尝试再次运行 tsc

旁注:Windows 的 Node.js 安装程序默认将 Node 和 NPM 添加到您的 Windows 路径。如果您已经正常安装了 Node.js,这应该可以正常工作。关于如何设置节点有什么特别之处吗?

原文由 Mattias Buelens 发布,翻译遵循 CC BY-SA 3.0 许可协议

当我在 Windows 10 上安装 typescript(我遵循 https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html )时,我将分享一些陷阱(这让我明白了!)。我在使用其他方法惨遭失败后,按照 https://github.com/coreybutler/nvm-windows 上的说明进行了较早的设置节点。

陷阱 #1 - tsc 和 tsc.cmd 在路径上(位于 %NVM_SYMLINK%) ,但 tsc 是 bash 脚本。换句话说,您必须使用命令 tsc.cmd 才能真正调用 windows 版本!只需调用 tsc 就会(在我的 Powershell 终端中)导致它因奇怪的错误而崩溃。

陷阱 #2 - Windows 文件系统锁定语义再次出现!因为我一直在深入研究这个问题,所以我在编辑器中打开了 tsc.cmd 文件——它锁定了文件!这会导致正确的调用 (tsc.cmd) 失败……直到我关闭编辑器。

希望这可以帮助某人..

原文由 Razzle 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题