在编译TypeScript时出现“tsc命令未找到”的错误提示。

261

我想安装typescript,于是我使用了以下命令:

npm install -g typescript 

执行tsc --version命令时,提示“tsc command not found”。我在stackoverflow、github和其他网站上尝试了很多方法,但都无法解决。我该如何确定是否已安装typescript以及其所在位置。

我的操作系统是Unix,OS X El Capitan 10.11.6, node版本是4.4.3, npm版本是3.10.5。


6
很可能你的 node/npm 设置有问题,例如相关的 npm 目录未包含在你的路径中。TypeScript 的安装位置取决于你的环境,但可以尝试使用 npm list -g 命令查看。或者尝试使用 npm config get prefix 命令(你的包通常位于此目录下的 bin 子目录中)。另请参见此问题 - user663031
谢谢,我明白了。我忘记导出前缀路径了。 - Aung Thet
你也可以查看我的答案 - Zameer Ansari
我已经把它工作起来了,转而使用yarn。 - Emmanuel Meric de Bellefon
在我的情况下,我有两个Windows用户,而我忘记了需要将它添加到路径中。 - net-js
2
在我的情况下,我需要执行 node_modules/.bin/tsc --version - Jonny
28个回答

269

几个建议:

  • 重启终端
  • 重启电脑
  • 重新安装nodejs + 运行 npm install typescript -g

如果还是不行,运行npm config get prefix查看 npm install -g 将文件放在哪里(将输出结果中的bin加上),并确保它们在路径中(node js 安装会处理这个问题,也许你忘了勾选该选项)。


6
谢谢,我明白了。当然,我忘了指定路径“export PATH=/prefix'sPath/bin:$PATH”,(https://docs.npmjs.com/getting-started/fixing-npm-permissions) 这个网站也建议这样做。我花了一整天的时间来解决这个问题 :)。 - Aung Thet
1
这个答案更加详细,特别是如果你进行Angular/Ionic开发。 - JGFMK
1
我不得不卸载node/npm。使用brew安装了NVM,然后使用nvm install node安装了node,接着使用sudo npm install -g typescript来使tsc --version正常工作。 - alex
15
我只执行了 "npm install typescript -g",结果完美运行。 - pixparker
2
升级 Node 版本帮助了我。 - JavaDeveloper
显示剩余5条评论

190

大家都在操作全局安装和路径文件,稍有错误可能会毁掉你曾经写的所有项目,你将花费余生试图让console.log('hi')再次正常工作。

如果你在项目中运行了npm i typescript --save-dev,请尝试运行:

npx tsc 

在搞砸全局设置之前,先看看它是否起作用(当然,除非你确实知道你在做什么)。


24
好的,请提供需要翻译的内容。 - kawerewagaba
29
最终,有一个不需要全局安装的答案。 - Luka Špoljarić
4
同意,这应该被接受作为答案! 要初始化一个新的npm包,请运行以下3个命令: npm init -y && npm i typescript --save-dev && npx tsc --init - Hans
感谢您考虑全局安装。不过我想补充一下,需要使用“npx tsc foo.ts”将TS编译为JS。 - emre-ozgun
为什么 npm run tscnpm tsc 不起作用,但这个可以? - Jeff Padgett

96

我不得不这样做:

npx tsc app.ts

2
这对我很有帮助,但是为了澄清,我必须执行 npm install --save-dev typescript && npx tsc --version && npx tsc <filename>。这将安装 tsc,使用 --version 成功测试它,并成功将我的 ts 文件编译为 js 文件。 - Jason
2
这个方法可行,但我只是使用了 npx tsc。添加 tsc 可能会解决使用 npx 的需要。 - foureyedraven
1
为什么有些人必须使用'npx'和'tsc',而对于其他人来说,不使用'npx'也可以正常工作? - PetrolHead007

31

在仅涉及 macOS 的小问题上找到所有解决方法后。
最终,我让我的 TSC 在 MacBook pro 上工作了。

这可能是我发现的最佳解决方案。

对于所有 macOS 用户,您可以使用 homebrew 安装 TypeScript 而不是使用 NPM 安装 TypeScript。

brew install typescript
请参考附加的截图。 enter image description here

12小时后,这对我有用 :) 只是按照您的帖子操作。非常感谢@Marjun - Prashen
这是对我有用的方法,不是 npm i typescript -g。可能与我的路径通过brew运行nvm有关。 - Curtis M

17

全局安装 TypeScript 包对我有用。

npm install typescript -g

11
如果在正确安装TypeScript(使用以下命令:$ sudo npm install -g typescript)后,您的MacOS中未找到TSC命令,则请确保将Node /bin路径添加到.bash_profile中的PATH变量中。

使用终端打开.bash_profile:$ open ~/.bash_profile;

使用您喜欢的文本编辑器编辑/验证bash配置文件,并包含以下行:

export PATH="$PATH:"/usr/local/lib/node_modules/node/bin"";

使用终端加载最新的bash配置文件:source ~/.bash_profile

最后,尝试输入命令:$ tsc --version


7

对于Mac用户而言,您无需重新启动电脑或执行其他命令。

使用brew install typescript命令即可。


6

首先运行以下命令安装typescript:npm install typescript 或者全局安装typescript,运行npm install -g typescript,然后运行npx tsc --version检查Typescript的版本,而不是tsc --version

同样适用于运行任何typescript文件,只需运行npx tsc <filename>.ts。例如,对于名为hello.ts的文件,请运行npx tsc hello.ts


5

这篇答案适用于MAC上的iTermV2

  1. 首先,在NPM安装期间我需要使用sudo(管理员权限)进行安装

    sudo npm install -g typescript

  2. NPM将库安装在/usr/local/Cellar/node/<your latest version>/lib/node_modules/typescript文件夹中,并在/usr/local/Cellar/node/<your latest version>/bin/tsc处建立符号链接

因此,我进入了~/.zshrc(如果您使用bash,则是.bashrc)并将/usr/local/Cellar/node/<your latest version>/bin添加到$PATH。

  1. 通过source ~/.zshrc (在您的情况下为.bashrc)重新加载shell配置文件

1
好的,知道了。但是从现在开始谁来负责这些链接的维护? - Chris Pillen

4
在 package.json 文件中:
  "scripts": {
    "tsc": "./node_modules/typescript/bin/tsc",
    "postinstall": "npm run tsc"
  },

这对于在Heroku上部署很有效。安装typescript npm install -D typescript后,在构建脚本中写入tsc "build": "tsc", 对我不起作用。


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