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

Bre*_*ias 23 node.js typescript visual-studio-code

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

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

以下是相关细节:

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

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

更新

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

"exclude": [
    "node_modules"
]
Run Code Online (Sandbox Code Playgroud)

zlu*_*mer 30

问题是tscPATH本地安装的不是你的.

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

要改变的线可能等于"command": "tsc".

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

这将指示VSCode:

  1. 运行NodeJS(它应该全局安装).
  2. 将本地Typescript安装作为要运行的脚本传递.

(这几乎就是tsc可执行文件)

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

  • 为什么我们要全局安装打字稿?那么我们的 npm 脚本就会有使用错误版本的 tsc 进行编译的危险。我希望它始终使用项目本地的 tsc。 (2认同)

Was*_*siF 27

npm install -g typescript // installs typescript globally
Run Code Online (Sandbox Code Playgroud)

如果要将Typescript文件转换为.ts,请根据需要执行此操作

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
Run Code Online (Sandbox Code Playgroud)

  • 我全局安装了 typescript 但仍然出现错误。 (6认同)

Ash*_*Jha 14

窗户用

全局安装打字稿后

npm install typescript -g 
Run Code Online (Sandbox Code Playgroud)

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

输入命令提示符

tsc -v 
Run Code Online (Sandbox Code Playgroud)

在这里我们可以看到 tsc 命令有效,现在导航到您的文件夹并键入

tsc filename.ts 
Run Code Online (Sandbox Code Playgroud)

它符合 ts 到 js 文件。

  • 非常好!有效!尽管如此,我不明白 tsc 本身的问题是什么。我已经全局安装了 typescript,它应该可以在 VSCODE 终端内运行! (2认同)

MSO*_*ACC 12

你需要运行:

npx tsc
Run Code Online (Sandbox Code Playgroud)

...而不是tsc像其他人似乎建议的那样,像 Windows 命令一样调用自己的命令。

如果你还没有npx安装,那么你应该。它应该全局安装(与 Typescript 不同)。所以首先运行:

npm install -g npx
Run Code Online (Sandbox Code Playgroud)

..然后运行npx tsc

  • npx 附带 npm 起始版本 [5.2](https://nodejs.dev/learn/the-npx-nodejs-package-runner),因此您可能不需要单独安装它。 (2认同)

Dro*_*Dan 8

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

如果您知道命令npm install -g typescriptnpm install typescript保存的位置,我建议替换:

"command": "tsc"
Run Code Online (Sandbox Code Playgroud)

"command": "D:\\Projects\\TS\\Tutorial\\node_modules\\.bin\\tsc"
Run Code Online (Sandbox Code Playgroud)

D:\\...\\bin包含我的tsc windows可执行文件的文件夹在哪里

将确定我的vscode现在正在指向哪里找到tsc并修复它我想.


小智 6

该错误是由于本地安装依赖项造成的。我通过以下方式解决了这个问题:

  1. $ npm install -g typescript 然后在环境变量中设置路径:
  2. C:\Users\User\AppData\Roaming\npm
  3. tsc -v