无法找到Typescript编译器:命令“tsc”无效。

65

刚刚安装了VS2012的TypeScript扩展,并按照在Visual Studio 2012中安装TypeScript,然后是教程来调用编译器:

> tsc greeter.ts

当我尝试编译.ts文件时,应该在哪里输入tsc greeter.ts?我已经尝试了VS命令行和Windows控制台,但始终收到消息:tsc不被识别为命令(Command "tsc" is not valid.)。


你是如何尝试编译的?是通过命令行还是通过图形用户界面(GUI)? - hakre
3
@hakre,为什么这个问题会是一个重复的问题?回答涉及到.NET SDK! - 0x49D1
要在系统上调用一个命令,你需要指定它的完整路径或者该命令所在的目录已经被包含在路径变量中。实际上这两种方式是相同的,只是命令不同而已。然而我认为这种相关性的思维活动对于一名普通程序员来说应该是可能的。 - hakre
@user11201714 抱歉?这个问题已经6年了,而且它并不是关于安装TypeScript的。 - 0x49D1
@hakre 刚刚修改了问题,我必须道歉:当然你是对的,这个问题与另一个可执行文件相同。但是这里有一个有价值的扩展答案供新手参考:https://dev59.com/PWcs5IYBdhLWcg3woVl-#40616601,所以这个问题和答案可能有一定的价值。 - 0x49D1
14个回答

98

如果您正在将tsc用作节点模块,请确保已经安装了它。

npm install -g typescript

那么它应该在您的节点命令提示符中全局可用


我没有安装node/npm模块,但可以访问它。目前我不确定它是否随VS 2012或TypeScript插件一起安装。 - jl.
1
Visual Studio 2012没有内置TypeScript的支持,但插件可以安装编译器。这个下载页面https://typescript.codeplex.com/releases/view/111080说你可以通过“包含Visual Studio工具和编译器的MSI”来安装TypeScript。如果你可以从cmd访问编译器但没有全局安装节点模块,则TypeScript插件已经安装了编译器并将其添加到了你的路径中。 - lhk
如果您已经将tsc安装为一个节点模块,您也可以使用npm list -global --depth=0来检查它是否已经全局安装并成功。 - pzaenger
3
这个回答比被采纳的那个好得多,它可以解决相同的问题,无论使用哪个平台或编辑软件。 - claywhipkey
如果使用的是Windows系统,有一个特殊的节点命令提示符。您可以尝试使用它吗? - lhk
显示剩余3条评论

47

请确保您的路径包含以下之一:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0

或者

C:\Program Files\Microsoft SDKs\TypeScript\0.8.0.0

如果没有,请尝试重新启动 CMD.EXE 并查看是否显示新的副本。 如果仍无法找到,请尝试手动将其中一个添加到您的路径中。


1
我该如何将它添加到路径中?我尝试了自己添加,但仍然无法正常工作。也许我做错了?我已经将“tsc”和“C:\Program Files\Microsoft SDKs\TypeScript\0.8.0.0”添加到了PATH中,但是VS CMD仍然无法看到它的存在。此外,VS CMD无法识别任何东西 - Arrow
http://windowsitpro.com/systems-management/how-can-i-add-new-folder-my-system-path - Manish Jain
4
我已经使用“npm install -g typescript”命令安装了TypeScript,但是在我的Windows 8.1 Pro机器上找不到上述路径以设置路径。 - Seshu Vuggina
在Windows 10中,搜索“编辑系统环境变量”并按下“环境变量...”按钮。在“系统变量”下选择“Path”并按“编辑”。使用“新建”添加新路径,并删除任何旧的typescript条目(如果适用)。 - Taraz
我在我的IDE终端中遇到了这个问题,我刚刚运行了 npm install typescript。重新启动终端更新了路径,一切正常工作。 - elgaz
显示剩余3条评论

16

对于那些在Windows上使用Visual Studio Code的人,不想为了获取tsc.exe而安装完整版Visual Studio,我可以建议您从这里下载:https://www.microsoft.com/en-us/download/details.aspx?id=48593

遗憾的是,这个链接在TypeScript下载页面中并没有提供。

尽管安装程序被称为TypeScript for Visual Studio 2015,但也适用于Visual Studio Code。

在下载并安装TypeScript后,您应该手动将其安装目录(例如我的路径为C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.0\)添加到%PATH%环境变量中。

打开环境变量编辑器:

Win + S;输入e, n, v, i, r, o;点击编辑您帐户的环境变量

在打开的窗口中找到用户变量Path(请注意,这里它的名称不是%PATH%,但它仍然是它)。您可能已经设置了一些路径。您只需在末尾输入;添加TypeScript安装位置并再添加一个;

以下是参考截图:

enter image description here

完成后,打开命令提示符并键入tsc -v。如果显示了tsc.exe的版本,则说明已完成。为使更改对%PATH%生效,在更改后重新启动命令提示符和VS Code

P.S. 如果出现“错误 TS5057:在指定目录中找不到tsconfig.json文件:'。'”,只需在文档根目录(可能是您的.ts文件所在的地方)创建一个tsconfig.json文件,并将其内容设置为空对象{}即可。这表示“一个空的JSON文件......这对大多数人来说足够了。” (来源)。


1
要使此项工作,重新启动命令提示符。很高兴您添加了这一点。这就是为什么它对我没起作用的原因。 - RollingInTheDeep
1
这是一个救命的答案,@Neurotransmitter - 谢谢。我花了整个晚上试图让 Visual Studio Code "看到" 并运行 tsc,而在我尝试的所有方法中,这是第一个成功的过程。(在我的情况下,安装文件夹是 C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.2\,但除此之外,我完全按照您详细和优秀的说明操作 - 谢谢!) - Rounin
2
更新:最终似乎无法实现我想要的目标——安装Visual Studio Code和TypeScript,但_不必_安装Node.js 13.4.0(最后一个兼容Windows 7的Node.js)。尽管如此,还是要感谢@Neurotransmitter,在我进行VSC + TS发现过程的某个时刻,帮我避免了所有头发都被扯光的危险。 - Rounin
@GonenI tsc.exe 应该安装在 C:\Program Files (x86)\Microsoft SDKs\TypeScript\* - Neurotransmitter
@Neurotransmitter 这在我的情况下并不是这样。虽然目录及其子文件夹已创建并包含许多.js文件和dlls,但找不到tsc.exe。也许他们决定不再将其包含在安装中。 - Gonen I
显示剩余3条评论

5
如果您已经为特定的文件夹/项目安装了TypeScript(即非全局安装),那么您应该使用npx命令来使用tsc命令。 例如:
npx tsc myfile.ts

npx用于执行一个包。


3
有时候关闭并重新打开命令提示符可以解决问题。
这是因为二进制文件(在本例中为tsc)的位置尚未在PATH中可用,因此tsc无法链接到/usr/bin/tsc。

解释为什么这样做可以解决问题,将提高此帖子的长期价值。 - starball

2

检查这两个文件夹以确定你所使用的 TypeScript 版本:

C:\Program Files (x86)\Microsoft SDKs\TypeScript\
C:\Program Files\Microsoft SDKs\TypeScript\

右键单击显示版本号的文件夹,然后选择“复制路径”。

将其粘贴到您的系统路径中(快速访问- Windows键,然后输入“env”)。然后以管理员身份打开一个新的命令提示符控制台,“tsc”应该可以工作了。


有没有更好的方法来获取tsc.exe路径,而不是假设它是%PROGRAMFILES(X86)%\Microsoft SDKs\TypeScript\{version}\tsc.exe?我们如何确定版本号是多少?有没有一些注册表值可以使用? - Dai

1
作为新的路径变量,不要使用显示的 tsc version 数字,而是使用与之不同的 TypeScript 文件夹名称。
示例:
tsc -v display 2.4.1 

但 TypeScript 目录为

C:\Program Files (x86)\Microsoft SDKs\TypeScript\2.4


1

只需删除AppData\Roaming\npm\tsc.ps1文件,问题就会得到解决。


1
在我的情况下,我使用-g标志全局安装了typescript,但tsc无法识别。 结果发现以下目录未包含在path环境变量中:
C:\Users\Jitendra\AppData\Roaming\npm

将此目录添加到path变量中对我有用。


1
确保您的系统路径上有这些内容
C:\Users\"Your username"\AppData\Local\Programs\MicrosoftVsCode\bin

将“your username”更改为您的实际用户名

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接