由于某些原因,npx tsc --init打印出以下错误:
$ npx tsc --init
npx: installed 1 in 1.467s
error TS5023: Unknown compiler option 'init'.我已经安装了typescript包Yarn 2
$ yarn add -D typescript
➤ YN0000: ┌ Resolution step
➤ YN0000: └ Completed in 0.31s
➤ YN0000: ┌ Fetch step
➤ YN0013: │ typescript@npm:3.9.3 can't be found in the cache and will be fetched from the remote registry
➤ YN0013: │ typescript@patch:typescript@npm%3A3.9.3#builtin<compat/typescript>::version=3.9.3&hash=8cac75 can't be found in the cache and will be fetched from the disk
➤ YN0000: └ Completed in 1.46s
➤ YN0000: ┌ Link step
➤ YN0000: └ Completed
➤ YN0000: Done in 1.95s有人能向我解释为什么tsc不认识--init以及我做错了什么吗?
更新:
正如丹尼尔所指出的,问题是npx没有找到或识别安装了Yarn 2的typescript包。解决方案是使用yarn:yarn tsc --init
发布于 2020-05-29 01:07:22
从npx tsc --init的输出来看,您似乎没有在运行命令的目录中安装typescript包。npx试图通过安装命令运行所需的任何包来提供帮助。
尽管它试图提供帮助,但它最终没有安装人们预期的2020年软件包。如果运行$ npx tsc -v,很可能会得到以下输出:
$ npx tsc -v
npx: installed 1 in 1.098s
message TS6029: Version 1.5.3但是,如果安装了typescript包,则会得到以下结果:
$ npx tsc -v
Version 3.9.3如您所见,npm安装的版本是不同的。这是因为npx最终安装了tsc包,而不是tsc包还提供了一个tsc命令。npx选择了它而不是typescript,因为虽然这两个包都提供了一个tsc命令,但它也被称为tsc。npx认为这是个更合适的选择。
更新:
纱线2介绍了Plug'n'Play的特点。依赖项的安装方式与Yarn 1和npm以前的安装方式非常不同。
Yarn 1和npm将包的代码放在每个项目的node_modules目录中。npx去那里寻找命令。
另一方面,shared 2在共享位置安装包代码,并在项目中放置一个执行映射的.pnp.js文件。如果您为一个项目安装了一个包,如果您在另一个项目中使用它,就不必再下载它。
然而,任何依赖于node_modules的工具都将被破坏。这就是为什么npx无法在您的项目中找到typescript的原因。npx不知道Plug'n'Play。
您可以在这里阅读更多有关此特性的内容:https://yarnpkg.com/features/pnp
发布于 2020-10-02 04:44:32
对于不使用yarn或npx的其他人来说,在我的例子中,解决这个问题的是:
npm install -g typescript --force
编辑
我知道它没有回答确切的问题,但它确实处理了error.
npm解决方案的相同解释:以前有故障,可能安装了tsc而不是typescript,或者以前的typescript安装本身也有问题。npm install将再次安装类型记录,--force标志用于忽略现有的本地文件并覆盖它们。https://stackoverflow.com/questions/62076722
复制相似问题