tsc未被识别为内部或外部命令

时间:2016-02-12 18:15:03

标签: node.js typescript visual-studio-code

我从VSCode 0.10.6更新到0.10.8,并且第一次尝试使用Typescript。不幸的是,当我告诉VSCode构建时,我收到错误:

  

tsc不被认为是内部或外部命令......

以下是相关细节:

  • 我创造了一个新鲜的" HelloWorld"项目according to VS Code instructions。这包括:
    • 我为新的package.json
    • 运行了npm init
    • 我跑了npm i --save-dev typescript因为我想要本地安装,而不是全局安装。
    • 我创建了一个launch.json来定义node.js项目。
    • 我创建了tasks.json文件,并为tsc。
    • 指定了设置
  • 我制作了一个settings.json文件,as shown here。它没有帮助。
  • 我安装了Visual Studio 2015社区,但我没有安装任何类型的Typescript扩展。当我键入"其中tsc"在开发人员命令提示符下,它回复"找不到"。我认为这是件好事。

我重启了VSCode(好几次)。我错过了什么?还有什么必须做的?

更新

我尝试了@zlumer提供的解决方案。它成功地使打字稿编译器运行,但随后它出现了数千个错误。为了解决这个问题,我还必须调整我的tsconfig.json以排除node_modules文件夹:

"exclude": [
    "node_modules"
]

13 个答案:

答案 0 :(得分:26)

问题是tsc如果在本地安装,则PATH不在您的身上。

您应修改.vscode/tasks.json以包含tsc的完整路径。

要更改的行可能等于"command": "tsc"

您应该将其更改为"command": "node"并将以下内容添加到您的args:"args": ["${workspaceRoot}\\node_modules\\typescript\\bin\\tsc"](在Windows上)。

这将指示VSCode:

  1. 运行NodeJS(应该全局安装)。
  2. 将您当地的Typescript安装作为要运行的脚本传递。
  3. (这几乎是tsc可执行文件的作用)

    您确定不想全局安装Typescript吗?它应该让事情变得更容易,特别是如果你刚刚开始使用它。

答案 1 :(得分:20)

可能有一个原因是Typescript未全局安装,因此请安装

npm install -g typescript // installs typescript globally

如果您想将.ts个文件转换为.js,请根据需要进行此操作

tsc file.ts // file.ts will be converted to file.js file
tsc         // all .ts files will be converted to .js files in the directory
tsc --watch // converts all .ts files to .js, and watch changes in .ts files

答案 2 :(得分:8)

在VSCode文件tasks.json中,"command": "tsc"将尝试在它认为是您的模块文件夹的某个文件夹中找到tsc windows命令脚本。

如果您知道命令npm install -g typescriptnpm install typescript保存在哪里,我建议您更换:

"command": "tsc"

"command": "D:\\Projects\\TS\\Tutorial\\node_modules\\.bin\\tsc"

其中D:\\...\\bin是包含我的tsc windows可执行文件的文件夹

将确定我的vscode现在指向的位置,以便找到tsc并修复它。

答案 3 :(得分:6)

您需要运行:

npx tsc

...而不是像其他所有人所建议的那样,像Windows命令那样仅调用tsc

如果您尚未安装npx,则应该安装。它应该全局安装(与Typescript不同)。因此,首先运行:

npm install -g npx

..然后运行npx tsc

答案 4 :(得分:2)

tsc不被识别为内部或外部命令

如另一个答案中所述,这是因为路径中不存在tsc。

1。作为全局软件包安装

要使该用户的所有目录都可以使用TypeScript编译器,请运行以下命令:

npm install -g typescript

您将看到类似于

C:\ Users \用户名\ AppData \ Roaming \ npm \ tsserver-> C:\ Users \用户名\ AppData \ Roaming \ npm \ node_modules \ typescript \ bin \ tsserver C:\ Users \用户名\ AppData \ Roaming \ npm \ tsc-> C:\ Users \用户名\ AppData \ Roaming \ npm \ node_modules \ typescript \ bin \ tsc +打字稿@ 3.6.3 在4.769秒内从1位贡献者添加了1个程序包

2。设置环境变量

  • 将npm安装文件夹添加到“用户变量”中,然后 “环境变量”。

  • 在Windows中,您可以添加具有值的环境变量PATH

    C:\ Users \ username \ AppData \ Roaming \ npm \

即npm安装文件夹所在的位置。

注意:如果存在多个路径,请用;(分号)

隔开。

如果以下命令给出了版本,则说明您已成功安装

tsc --version

答案 5 :(得分:1)

或者你可以使用npm自动查看.bin文件夹。然后你可以使用tsc

答案 6 :(得分:1)

您错过了打字稿安装,只需在命令下方运行,然后尝试 tsc --init

npm install -g typescript

答案 7 :(得分:0)

我也面临同样的问题。使用nodeJS命令提示符而不是Windows命令提示符。

步骤1:执行npm install -g typescript

第2步:tsc filename.ts

新文件将被创建为与“ .js

相同的名称和不同的扩展名。

第3步:node filename.js

您可以在屏幕上看到输出。它对我有用。

答案 8 :(得分:0)

对于Windows

全局安装打字稿后

npm install typescript -g 

只需搜索“ node.js命令提示符”

键入命令提示符

tsc -v 

在这里我们可以看到tsc命令的工作原理,现在导航到您的文件夹并输入

tsc filename.ts 

它符合ts文件。

答案 9 :(得分:0)

对我来说,通过以管理员身份运行Visual Studio Code,可以解决此问题。

答案 10 :(得分:0)

如果要在本地安装 TypeScript 模块的情况下从集成终端运行 tsc 命令,可以将以下内容添加到 .vscode\settings.json 文件中。

{
  "terminal.integrated.env.windows": { "PATH": "${workspaceFolder}\\node_modules\\.bin;${env:PATH}" }
}

这会将本地安装的节点模块的二进制/可执行目录(tsc.cmd 所在的位置)添加到 $env.PATH 变量中。

答案 11 :(得分:0)

此错误的另一种情况:

安装 typescript locally 并在没有 npm run 的情况下运行命令

首先,重要的是要注意这是一个“一般”终端错误(即使你写了 hello bla.js -or- wowowowow index.js):

enter image description here

“hello world” 此错误示例:

  1. 本地安装 typescript(不带 -g)==> npm install typescripthttps://docs.npmjs.com/downloading-and-installing-packages-locally
  2. 在这种情况下,如果您在本地项目中运行 tsc,则 npm run 命令可用。例如:npm run tsc -v:

enter image description here

-或- 全局安装打字稿(就像其他答案提到的一样)。

答案 12 :(得分:0)

如果以上都没有意义,特别是如果它以前可以工作的话。这是我的解决方案:rm -f node_modulesnpm i

我的问题是我运行了 rm -rf node_modules 一秒钟左右然后停止了它。然后我忘了它,我也跑了npm i。然后我得到了 tsc 无法识别的错误。所以我尝试运行 npm i 以确保一切都是最新的,它说是,但事实并非如此。