如何将 Typescript 升级到最新版本?
Posted
技术标签:
【中文标题】如何将 Typescript 升级到最新版本?【英文标题】:How to upgrade Typescript to the latest version? 【发布时间】:2013-02-24 10:30:08 【问题描述】:我有一台装有 OS X 10.8.2 的 MacBook Pro 前段时间我安装了 Typescript,今天我想将该安装升级到可用的最新版本(到目前为止,v0.8.3)。 我从终端写了这个命令:
sudo npm install -g typescript
但这是我在显示器上看到的:
npm http GET https://registry.npmjs.org/typescript
npm http 304 https://registry.npmjs.org/typescript
/usr/local/bin/tsc -> /usr/local/lib/node_modules/typescript/bin/tsc
typescript@0.8.0 /usr/local/lib/node_modules/typescript
这是否意味着我的计算机上仍然安装了 0.8.0 版本?
我试图查看 tsc 命令是否有 -v
或 -version
参数,但我没有找到它,所以我仍然不确定我是否已将 Typescript 升级到最新版本,或者我是否仍然坚持使用旧版本版本。
【问题讨论】:
你也许可以通过在命令行上使用这个命令来检查 TypeScript 的版本:npm view typescript version
。
【参考方案1】:
由于选择的正确答案对我没有帮助,我想我会分享我是如何解决这个问题的。
我不得不从我的 PATH 中删除 C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
。
之后我可以运行这个命令并查看我期望的版本:
C:\>tsc --version
message TS6029: Version 1.5.3
【讨论】:
嘿,我也遇到了同样的问题,你是如何删除 `C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0` 路径的,我找不到路径.. .. @akash_sinha13134 这是一篇关于如何从 PATH 中删除变量的文章:digitalcitizen.life/… 也许我们应该将此答案移至 Windows 问题。 @BenR 是的......我知道,但找不到它......就像你说的那样,它有效,谢谢...... :) 只是为了澄清(因为我总是忘记)你需要打开一个新的 cmd 提示符来应用对环境变量所做的任何更改。【参考方案2】:我在下面为我工作的程序遇到了同样的问题
更新 NPM
npm install npm@latest -g
更新打字稿
npm -g upgrade typescript
或
npm install typescript@latest -g
现在你应该看到
tsc --version
2.1.5 版
【讨论】:
我在输入npm update -g tsc
并没有收到任何错误消息,但没有任何效果 :))) 不要犯我的错误,注意语法(upgrade
不是 update
)和包名(typescript
不是tsc
):D 它是npm upgrade -g typescript
@PuneethRai 写的:)
tsc 是二进制文件,而 typescript 是包含该二进制文件的包名。所以理想情况下你需要升级包而不是二进制。因此,请升级包含二进制文件的软件包。所以你需要做 npm -g upgrade typescript
谢谢!我还刚刚发现npm update
或npm up
只是npm upgrade
的别名。所以我的主要错误是认为包名是tsc
...
只是想添加一个额外的注释 - 我们遇到了同样的问题,但这是因为运行 npm install typescript@latest -g
不起作用。它出错了,因为出于某种原因,它不想更新符号链接。我们刚刚添加了--force
,这迫使它更新。可能是因为旧版本的 typescript 已经超过 5 年了...【参考方案3】:
对于那些仍在为此苦苦挣扎的人 - 尝试在命令提示符或 Node.js 命令提示符中运行 WHERE tsc
,您将获得它的所有安装位置。从 PATH env var 中删除过多的位置。
【讨论】:
这对我来说就像一个魅力,因为我显然在过去的某个时候通过纱线安装了它。使用npm install
一点用都没有。【参考方案4】:
即使我安装了最新的打字稿,在执行 tsc -v 时我仍然得到 1.0.3 的版本
更正的答案对我没有帮助,但遵循@BenR 方法,从系统变量中删除了这个 PATH C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
然后打开新的windows命令提示符,然后输入
tsc -v
Version 2.3.3
所以现在我能够使用tsc file.ts
编译打字稿文件
希望这对某人有所帮助。
【讨论】:
【参考方案5】:打开命令行工具cmd.exe/Git Bash
并执行:
npm install -g typescript@latest
该命令将执行以下操作:
检查是否安装了 Typescript 和 ..
-
如果已经安装,更新到最新版本
如果未安装,安装最新版本
据报道,当您已经安装 typescript 时,以下命令将无法可靠运行:
npm update -g typescript@latest
测试版本使用
tsc -v // prints out the locally installed typescript version
您还可以查看npm registry 中最新可用的打字稿版本:
npm view typescript version // prints the latest available version in the npm registry
【讨论】:
当我输入tsc -v
时,我收到一个版本已经存在的错误。错误提示:“删除现有文件并重试,或使用 --force 运行 npm 以鲁莽地覆盖文件。” 我想遵循您的解决方案,但在您检查最新版本后,如何你卸载它以便安装最新的吗?【参考方案6】:
我刚刚意识到我使用的是旧版本的 npm。我已将 npm 升级到最新版本,然后重新安装了 typescript,现在我的计算机上安装了最新版本的 typescript。
【讨论】:
为什么 npm 版本很重要?【参考方案7】:我在 Linux 上遇到了同样的问题,可能与使用节点版本管理器有关。
我通过查找 tsc 的位置来修复它,然后手动进入并删除这些文件夹
$ which tsc
/home/vagrant/.nvm/versions/node/v6.9.5/bin/tsc
$ cd /home/vagrant/.nvm/versions/node/v6.9.5/bin/
$ ll
...
lrwxrwxrwx 1 vagrant vagrant 38 Nov 30 10:32 tsc -> ../lib/node_modules/typescript/bin/tsc*
lrwxrwxrwx 1 vagrant vagrant 43 Nov 30 10:32 tsserver -> ../lib/node_modules/typescript/bin/tsserver*
...
$ rm -rf ../lib/node_modules/typescript/ tsc tsserver
【讨论】:
【参考方案8】:-
我在我的 Windows 操作系统计算机上安装了 Visual Studio,它在系统路径中添加了自己的 TypeScript 安装版本
从程序和功能中卸载了“TypeScript for Visual Studio”(或“添加或删除程序”)
安装了最新的打字稿。从命令提示符'npm install -g typescript@latest'
问题已解决!
我知道这是一个老问题,但我遇到了类似的问题,这里的答案都没有解决它,将我的答案发布给同一条船上的其他人。
【讨论】:
我使用的是 Win 10,但在搜索中找不到“程序和功能”。您使用的是哪个版本的 Windows? 它现在是“添加或删除程序”,我猜从那以后旧的控制面板已经淘汰了更新。 当时使用的是 Windows 7。我已更新答案以包括 Windows 10 之一(“添加或删除程序”) 感谢您添加 Windows 10 位置!【参考方案9】:我刚刚在 Windows 8 机器上遇到了这个问题,管理员访问被阻止,我无法卸载全局打字稿,修改 PATH
等。
以下是在这种情况下启动 typescript 项目的方法:
-
为项目
npm install typescript@latest
安装本地打字稿版本(避免-g
参数)
将构建脚本添加到package.json
,例如
scripts:
"clean": "rimraf coverage build tmp",
"build": "tsc -p tsconfig.release.json",
"build:watch": "tsc -w -p tsconfig.release.json",
"lint": "tslint -t stylish --project \"tsconfig.json\"",
"test": "jest --coverage",
"test:watch": "jest --watch"
通过npm run build:watch
使用本地版本的typescript 运行typescript 编译器,这将使用来自node_modules
的项目本地tsc
启动tsc -w -p tsconfig.release.json
【讨论】:
【参考方案10】:我遇到了同样的问题,但没有一个流行的答案能解决我的问题。我在装有 Visual Studio 2017 的 Windows 10 上。
我尝试使用控制台中的where tsc
来确定@987654323@ 的路径在哪里解析。第一个条目类似于:C:\Program Files (x86)\Microsoft SDKs\TypeScript\x.xx
。所以我检查了PATH
变量(系统和用户),找不到那个路径。
我终于在 GitHub 上偶然发现了这条评论:https://github.com/Microsoft/TypeScript/issues/4971#issuecomment-144184935
这为我指明了正确的方向。我使用Console2
,我的默认控制台选项卡通过此.bat
文件生成一个Visual Studio 增强控制台:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat
.bat
文件不包含任何特定于 TypeScript 的内容,但它确实运行在 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\vsdevcmd\ext
中找到的所有 .bat
文件。 那些文件之一显眼地命名为typescript.bat
。我只是将该文件重命名为其他扩展名,然后重新打开控制台,现在一切都很好。
不确定这是否会破坏 Visual Studio 中的任何内容,但我不会将它用于 TypeScript。而且我怀疑未来的 Visual Studio 更新可能会将该文件放回原处。但它现在有效。
【讨论】:
您的解决方案听起来不错,而且是最新的,但我确实使用 VS Code for Typescript (Angular),如果这个解决方案在 VS Code 中使用 TSC 搞砸了,我会讨厌它。您使用的是 VS Code 还是完整的 Visual Studio IDE?以上是关于如何将 Typescript 升级到最新版本?的主要内容,如果未能解决你的问题,请参考以下文章