"npx tsc --version" 报告虚拟机内的不同 TypeScript 版本
"npx tsc --version" reports different TypeScript version inside virtual machine
我希望能够 运行 npx tsc
我的项目在我的主机和来宾操作系统上。但是客人使用的是 tsc
的不同(旧)版本 - 我不确定它来自哪里。
我的设置:
- 主持人OS:Windows10
- 访客OS:Debian 9
- 我正在使用 VirtualBox,来宾正在使用 VirtualBox 的 "shared folders" 功能安装主机的文件 - 因此它没有项目文件的单独副本 - 我的项目是通过共享文件夹访问的所有时间。
- 我没有在主机或来宾 OS 上全局安装 Typescript (npm -g)(为了确认这一点,运行ning
npm -g ls typescript
在主机+来宾显示"empty",并且 运行ning "tsc" 单独不起作用,如预期的那样)。
我有一个带有 TypeScript 3.3.3333 的项目安装到带有 NPM 的项目中。
在Windows主机OS上,当我cd
到项目文件夹和运行:
npm ls typescript
我看到输出:typescript@3.3.3333
(如预期)
npx tsc --version
我看到输出:Version 3.3.3333
(如预期)
里面的Linux来宾OS,当我cd
到项目文件夹和运行:
npm ls typescript
我看到输出:typescript@3.3.3333
(如预期)
npx tsc --version
我看到输出:message TS6029: Version 1.5.3
(意外!)
所以我无法 运行 npx tsc
在来宾中编译我的代码,因为它不支持我的一些较新的 tsconfig 设置。
这个 tsc 1.5.3 版本可能来自哪里,我该如何摆脱它?
或者是否有一些替代的 NPM 命令我可以 运行 在主机上将可用的 tsc
安装到对 Windows+Linux 都适用的项目中?
此外,上面的父文件夹的none我项目的根目录有一个node_modules
文件夹(但是当然我项目的根目录确实有它的 node_modules 子文件夹)。
为了简短起见,TypeScript 二进制文件被称为 tsc
。当它没有全局安装时,npx
无法知道 tsc
指的是 typescript
包的 tsc
二进制文件。 npx tsc
指的是deprecated tsc
package.
解决此问题的一种方法是明确指定包名称:
npx -p typescript tsc
而这里的实际问题是项目依赖全局TypeScript安装。通常 typescript
在项目依赖项中编写项目并在 package.json NPM 脚本中引用本地安装:
...
"scripts": {
"build": "tsc"
},
"devDependencies": {
"typescript": "~3.3.0"
"
...
我希望能够 运行 npx tsc
我的项目在我的主机和来宾操作系统上。但是客人使用的是 tsc
的不同(旧)版本 - 我不确定它来自哪里。
我的设置:
- 主持人OS:Windows10
- 访客OS:Debian 9
- 我正在使用 VirtualBox,来宾正在使用 VirtualBox 的 "shared folders" 功能安装主机的文件 - 因此它没有项目文件的单独副本 - 我的项目是通过共享文件夹访问的所有时间。
- 我没有在主机或来宾 OS 上全局安装 Typescript (npm -g)(为了确认这一点,运行ning
npm -g ls typescript
在主机+来宾显示"empty",并且 运行ning "tsc" 单独不起作用,如预期的那样)。
我有一个带有 TypeScript 3.3.3333 的项目安装到带有 NPM 的项目中。
在Windows主机OS上,当我cd
到项目文件夹和运行:
npm ls typescript
我看到输出:typescript@3.3.3333
(如预期)npx tsc --version
我看到输出:Version 3.3.3333
(如预期)
里面的Linux来宾OS,当我cd
到项目文件夹和运行:
npm ls typescript
我看到输出:typescript@3.3.3333
(如预期)npx tsc --version
我看到输出:message TS6029: Version 1.5.3
(意外!)
所以我无法 运行 npx tsc
在来宾中编译我的代码,因为它不支持我的一些较新的 tsconfig 设置。
这个 tsc 1.5.3 版本可能来自哪里,我该如何摆脱它?
或者是否有一些替代的 NPM 命令我可以 运行 在主机上将可用的 tsc
安装到对 Windows+Linux 都适用的项目中?
此外,上面的父文件夹的none我项目的根目录有一个node_modules
文件夹(但是当然我项目的根目录确实有它的 node_modules 子文件夹)。
为了简短起见,TypeScript 二进制文件被称为 tsc
。当它没有全局安装时,npx
无法知道 tsc
指的是 typescript
包的 tsc
二进制文件。 npx tsc
指的是deprecated tsc
package.
解决此问题的一种方法是明确指定包名称:
npx -p typescript tsc
而这里的实际问题是项目依赖全局TypeScript安装。通常 typescript
在项目依赖项中编写项目并在 package.json NPM 脚本中引用本地安装:
...
"scripts": {
"build": "tsc"
},
"devDependencies": {
"typescript": "~3.3.0"
"
...