網站搜尋

node.js - tsc 未被識別為內部或外部指令


我從 VSCode 0.10.6 更新到 0.10.8,並且第一次嘗試使用 Typescript。不幸的是,當我告訴 VSCode 進行構建時,我收到錯誤:

tsc 不是內部或外部命令,也不是可執行的程式或批次檔。

以下是相關細節:

  • 我按照 VS Code 的說明建立了一個全新的 "HelloWorld" 專案。這包括:

    • 我為一個新的 package.json 執行了 npm init
    • 我執行了 npm i --save-dev typescript,因為我想要本地安裝,而不是全域安裝。
    • 我創建了一個 launch.json 來定義一個 Node.js 專案。
    • 我建立了 tasks.json 檔案,並設定了 tsc 的指定設定。
  • 我已經建立了一個 settings.json 檔案,如此處所示。但這沒有幫助。
  • 我確實安裝了 Visual Studio 2015 Community,但我沒有安裝任何類型的 Typescript 擴充功能。當我在開發者命令提示字元中輸入「where tsc」時,它回覆「找不到」。我想這應該是一件好事。

我已經重啟了 VSCode(好幾次)。我還漏了什麼?還需要做什麼?

更新

我試了 @zlumer 提供的解決方案。它成功讓 TypeScript 編譯器運行,但隨後導致出現了數千個錯誤。為了解決這個問題,我還不得不調整我的 tsconfig.json 以排除 node_modules 資料夾:

"exclude": [
    "node_modules"
]

答案#1

可能有某種原因導致 Typescript 沒有全域安裝,因此請安裝它

npm install -g typescript // installs typescript globally

如果你想將 .ts 檔案轉換成 .js,請根據你的需要進行

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

答案#2

你需要運行:

npx tsc

...而不是像其他人似乎建議的那樣,只是像 Windows 命令那樣呼叫 tsc 自己。

如果你沒有安裝 npx,那你應該安裝。它應該被全域安裝(不像 Typescript)。所以首先執行:

npm install -g npx

..然後運行 npx tsc。

答案#3

問題是如果本地安裝,tsc 不在你的 PATH 中。

你應該修改你的 .vscode/tasks.json,以包含 tsc 的完整路徑。

可能需要更改的那一行是 "command": "tsc"。

你應該將它改為 "command": "node",並在你的 args 中添加以下內容:"args": ["$ {workspaceRoot}\\node_modules\\typescript\\bin\\tsc"](在 Windows 上)。

這將指示 VSCode 執行以下操作:

  1. 運行 NodeJS(它應該已經全域安裝)。
  2. 將本地的 Typescript 安裝作為要運行的腳本。

(這差不多就是 tsc 可執行檔所做的)

你確定不想全局安裝 Typescript 嗎?這應該會讓事情更簡單,特別是如果你剛開始使用它的話。

答案#4

適用於 Windows

在全域安裝 typescript 之後

npm install typescript -g 

只需搜尋「node.js 命令提示字元」

在命令提示字元中輸入

tsc -v 

在這裡我們可以看到 tsc 指令有效,現在導航到你的資料夾並輸入

tsc filename.ts 

它將 TypeScript 檔案轉換為 JavaScript 檔案。