尝试(和失败)在 VSC 终端中使用 tsc 在 Visual Studio Code 中运行(成功安装)TypeScript 编译器
Posted
技术标签:
【中文标题】尝试(和失败)在 VSC 终端中使用 tsc 在 Visual Studio Code 中运行(成功安装)TypeScript 编译器【英文标题】:Trying (and failing) to run the (successfully installed) TypeScript Compiler in Visual Studio Code using tsc in VSC Terminal 【发布时间】:2021-03-03 16:43:12 【问题描述】:我很欣赏这可能是一个幼稚的问题,但是我试图在黑暗中找到自己的方式,并且来自 Microsoft 的文档确实不像我需要的那样直观,因为我从未使用过任何一个Visual Studio Code 或 TypeScript 之前。
我已安装 Visual Studio Code(版本 1.51.1)Visual Studio Code > Help > About
引用 Node.js 12.14.1 - 我不确定它是否告诉我它已将其包含在自己的安装中,或者是否需要它才能正常工作
我已经下载了TypeScript for Visual Studio 2015(来自https://www.microsoft.com/en-us/download/details.aspx?id=48593)并按照the excellent and clear instructions from @Neurotransmitter成功安装
我已经编写并保存了一个基本的.ts
文件:
// my-first-typescript.ts
const myConst: number = 22;
console.log(myConst / 2);
如果我现在运行 Visual Studio Code > Terminal > New Terminal
并输入:
tsc my-first-typescript.ts
Windows 7 上会弹出一个控制台询问:
选择您要用来打开此文件的程序
显然终端正在尝试打开tsc.js
,但它不知道如何打开。
这就是我卡住的地方。
有没有办法在不安装Node.js
的情况下执行tsc.js
? (我猜不是?)
但是,Visual Studio Code 不是已经安装了Node.js
吗? (如果不是,它所指的 Node.js 12.14.1 是什么?)
我正在尽可能避免下载和安装Node.js
和npm
。
如果我必须这样做,那么我会的。
但是为了能够在 Visual Studio Code 中运行 TypeScript 编译器 (tsc
) 需要下载很多东西。
【问题讨论】:
【参考方案1】:您必须将 typescript 安装到您的环境中。是的,你需要node installed。
安装 node/npm 后你 can install typescript 使用
npm install -g typescript
之后你可以调用编译器tsc
,这会将文件从.ts
转换为.js
如果要运行,建议安装ts-node
那你就可以了
ts-node myFile.ts
【讨论】:
谢谢你,@distante。那么Visual Studio Code > Help > About
中对 Node.js 12.14.1 的引用是什么?是不是说它已经在我的计算机上识别了Node.js
的版本?还是说这是它需要的Node.js
的(最佳)版本?
@Rounin 老实说我不是 100% 确定。但我认为它指的是VsSode使用的内部节点编译(它是一个javascript/electron/node App)。因为我安装了节点 12.13,但我在 VsCode 中也得到了 12.14.1。
感谢您的澄清,@distante。这表明无论 VSCode 指的是什么,它都与本地已安装的 node
的任何版本无关。
@Rounin Help -> About 显示了 VS Code 使用的内部 Node.js 版本,这是一个 Electron 应用程序。 Electron 捆绑了自己的节点版本。
没问题@Rounin,我们都是一些技术、库或 API 的初学者:D以上是关于尝试(和失败)在 VSC 终端中使用 tsc 在 Visual Studio Code 中运行(成功安装)TypeScript 编译器的主要内容,如果未能解决你的问题,请参考以下文章
不会让我运行 node 。在 vsc 终端(制作不和谐机器人)
VSC终端检测不到webpack版本号和打包报错的2020年解决方案
即使在安装 .NET 核心 SDK 后,Dotnet 命令也不起作用