【问题标题】:Error running a 'npx tsc' command regarding Typescript: This is not the tsc command you are looking for运行有关 Typescript 的“npx tsc”命令时出错:这不是您要查找的 tsc 命令
【发布时间】:2021-09-06 22:42:00
【问题描述】:

首先要提到 TSC 已被弃用:https://www.npmjs.com/package/tsc

这是我得到的错误:

这不是您要查找的 tsc 命令

我正在开发一个 monorepo,所以脚本键中有 3 个不同的 package.json,我有这样的东西:

"scripts": {
  "build": "rm -rf lib/ && npx tsc && cp -R src/assets/ lib/assets/",
}

我想知道如何从我的 monorepo 中解决此问题,以及是否需要将 npx tsc 命令替换为 npx typescript 命令或与此相关的内容?

【问题讨论】:

  • 您的脚本应该调用tsc,而不是npx tsc。 (如果您还没有安装 TypeScript,这也会失败,但正确的解决方法是安装 TypeScript。)
  • 有理由不安装打字稿。既不是你的包裹,也不是全局的。
  • 在继续提出新问题的同时,请不要放弃您的问题。

标签: javascript typescript tsc monorepo npx


【解决方案1】:

npx 将从注册表中下载一个包并运行它而无需安装它。这对于小型 cli 工具非常方便,无需将它们添加到您的依赖项中。

npx tsc 将安装https://www.npmjs.com/package/tsc 并通过npx 运行它,我认为这不是你想要做的。我想你想运行打字稿。 为此,您应该将 typescript 安装到您的项目中并通过 npm run tsc 或只是 tsc 运行它。

【讨论】:

    【解决方案2】:

    问题是npx 不知道在哪里可以找到正确的tsc 命令。它首先查找名为tsc 的包。

    警告是由名为tsc (https://www.npmjs.com/package/tsc) 的包产生的。它曾经做我们期望它做的事情。现在它已被弃用。它不是 Microsoft 的官方软件包。我希望维护者不是邪恶的,因为这个包每周有大约 40.000 次下载。

    解决方案是使用-p(或--package)开关告诉npx哪个包提供tsc命令。在这种情况下,它是 typescript 包。

    npx -p typescript tsc
    

    所以你的脚本部分应该是这样的

    "scripts": {
      "build": "rm -rf lib/ && npx -p typescript tsc && cp -R src/assets/ lib/assets/",
    }
    

    【讨论】:

    • “首先查找一个名为 *tsc 的包”? (此外,这有助于正确使用 npx,但 npx 不是从包脚本中使用 TypeScript 编译器的正确方法。)
    【解决方案3】:

    改变

    "scripts": {
      "build": "rm -rf lib/ && npx tsc && cp -R src/assets/ lib/assets/",
    }
    

    "scripts": {
      "build": "rm -rf lib/ && tsc && cp -R src/assets/ lib/assets/",
    }
    

    即删除npx

    【讨论】:

      猜你喜欢
      • 2021-08-13
      • 2016-08-13
      • 2012-09-23
      • 2019-04-19
      • 2018-06-20
      • 2018-11-03
      • 2022-10-14
      • 2023-03-19
      • 2016-11-09
      相关资源
      最近更新 更多