node.js - tsc 未被識別為內部或外部指令
我從 VSCode 0.10.6 更新到 0.10.8,並且第一次嘗試使用 Typescript。不幸的是,當我告訴 VSCode 進行構建時,我收到錯誤:
tsc 不是內部或外部命令,也不是可執行的程式或批次檔。
以下是相關細節:
我按照 VS Code 的說明建立了一個全新的 "HelloWorld" 專案。這包括:
- 我為一個新的 package.json 執行了
npm init
- 我為一個新的 package.json 執行了
- 我執行了
npm i --save-dev typescript,因為我想要本地安裝,而不是全域安裝。 - 我創建了一個 launch.json 來定義一個 Node.js 專案。
- 我建立了 tasks.json 檔案,並設定了 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 執行以下操作:
- 運行 NodeJS(它應該已經全域安裝)。
- 將本地的 Typescript 安裝作為要運行的腳本。
(這差不多就是 tsc 可執行檔所做的)
你確定不想全局安裝 Typescript 嗎?這應該會讓事情更簡單,特別是如果你剛開始使用它的話。
答案#4
適用於 Windows
在全域安裝 typescript 之後
npm install typescript -g
只需搜尋「node.js 命令提示字元」
在命令提示字元中輸入
tsc -v
在這裡我們可以看到 tsc 指令有效,現在導航到你的資料夾並輸入
tsc filename.ts
它將 TypeScript 檔案轉換為 JavaScript 檔案。
