使用npm run时是否使用了其他版本的tsc?

时间:2018-07-17 05:37:57

标签: typescript npm visual-studio-code npm-run

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

"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。

1 个答案:

答案 0 :(得分:1)

问题已通过评论解决,但我将在此处保留更多详细的答案。

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

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