我有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。
答案 0 :(得分:1)
问题已通过评论解决,但我将在此处保留更多详细的答案。
执行npm run
(或npm run-script
)时,它将首先查找本地安装的可执行文件。这允许为每个项目的这些可执行文件使用不同的版本(例如,如果某些库与tsc
的新版本不兼容)。因此,如果将tsc
作为依赖项(或dev依赖项)安装,则npm run
将执行它,而不是全局安装的那个。 gulp
和其他CLI工具也是如此。
npm run-script
不是软件包,它是内部npm
命令,就像install
和其他命令一样。您可以使用npm help
进行检查-此命令一次显示所有内置命令的列表。