1

我有 VS Code 和一个使用 Typescript 的 Node.js 项目。在我的 package.jsonscript块中有一个项目:

"build-ts": "tsc"

如果我tsc在集成终端命令行上运行简单,编译就可以了。但是如果我调用npm run build-ts,它会检测到一个文件的语法错误。错误的原因似乎来自较旧的编译器版本。

如果我tsc -v在命令行上运行,它会显示版本 2.9.2。是否npm run在某处使用另一个版本的 tsc?

顺便说一句,是npm run来自包npm-run-script吗?我运行了一个npm list,但在本地或全局找不到 npm-run-script。

4

1 回答 1

2

这个问题已通过评论解决,但我将把这个答案留在这里作为一个更详细的版本。

  1. 当您执行npm run(或npm run-script)时,它会首先查找本地安装的可执行文件。这允许为每个项目的这些可执行文件使用不同的版本(例如,如果某些库与新版本不兼容tsc)。因此,如果tsc作为依赖项(或开发依赖项)安装,npm run将执行它,而不是全局安装的。gulp其他 CLI 工具也是如此。

  2. npm run-script不是一个包,它是一个内部npm命令,就像install和其他一样。您可以使用npm help- 此命令一次显示所有内置命令的列表来检查这一点。

于 2018-07-17T06:20:40.103 回答