LaV*_*che 4 node.js npm typescript tsc npx
我希望能够npx tsc
在我的主机 + 来宾操作系统上运行我的项目。但是来宾使用的是不同(旧)版本的tsc
- 我不确定它来自哪里。
我的设置:
npm -g ls typescript
在主机+来宾上运行都显示“空”,而单独运行“tsc”不起作用,正如预期的那样)。我有一个使用 NPM 安装到项目中的 TypeScript 3.3.3333 项目。
在 Windows 主机操作系统上,当我cd
到项目文件夹并运行时:
npm ls typescript
我看到输出:(typescript@3.3.3333
如预期)npx tsc --version
我看到输出:(Version 3.3.3333
如预期)在 Linux 来宾操作系统中,当我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 的项目?
此外,我的项目根目录上方的父文件夹都没有node_modules
文件夹(但当然我的项目根目录确实有它的 node_modules 子文件夹)。
Est*_*ask 12
为简洁起见,称为 TypeScript 二进制文件tsc
。当它不是全局安装时,npx
无法知道包tsc
是指tsc
二进制文件typescript
。npx tsc
指的是已弃用的tsc
包。
可以解决此问题的一种方法是明确指定包名称:
npx -p typescript tsc
Run Code Online (Sandbox Code Playgroud)
而这里的实际问题是该项目依赖于全局 TypeScript 安装。typescript
在项目依赖项中编写项目并在 package.json NPM 脚本中引用本地安装是很常见的:
...
"scripts": {
"build": "tsc"
},
"devDependencies": {
"typescript": "~3.3.0"
"
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5298 次 |
最近记录: |