一尘不染

从Windows命令行运行tsc

node.js

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

我的目标是在IntelliJ中为我的TypeScript源代码生成类型,但是我想学习使用Windows命令行,因此我可以显式指定命令行选项,以了解每个选项的作用。我对Googling所发现的与设置和使用它有关的各种花絮感到困惑…我敢肯定,我缺少一些非常基本的知识,那些博客或回答问题的人都认为这是常识。

这是我尝试过的和正在看到的…

步骤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步 :天真的尝试tsc直接从Windows命令行运行:

我通过Googling找到的示例采用以下形式:

编译一个文件:

tsc app.ts

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

如图所示,该方法不起作用,因为:

  1. tscWindows上的安装目录不在Windows上,很显然,通过更改Window PATH环境变量和/或在输入要执行的命令时完全限定文件的路径,可以很容易地对其进行补救或解决。 Path C:\Users\{my user id}\AppData\Roaming\npm\node_modules\typescript\bin``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源文件生成键入内容?


阅读 1701

收藏
2020-07-07

共1个答案

一尘不染

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

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

%APPDATA%\npm

尝试更新您的PATH文件夹以包括该文件夹,重新打开命令行,然后再次运行tsc

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

2020-07-07