使用 npm 运行 时是否使用了不同版本的 tsc?
Is a different version of tsc used when using npm run?
我有 VS Code 和一个使用 Typescript 的 Node.js 项目。在我的 package.json script
块中有一个项目:
"build-ts": "tsc"
如果我在集成终端命令行上运行 plain tsc
,编译没问题。但是如果我调用 npm run build-ts
,它会检测到一个文件的语法错误。错误的原因似乎来自旧的编译器版本。
如果我在命令行上运行 tsc -v
,它显示版本2.9.2。 npm run
是否在某处使用了另一个版本的 tsc?
顺便问一下,npm run
是包 npm-run-script 中的吗?我 运行 一个 npm list
并且我无法在本地或全局找到 npm-运行-script。
问题已通过评论解决,但我会将此答案留在这里作为更详细的版本。
当您执行npm run
(或npm run-script
)时,它首先查找本地安装的可执行文件。这允许为每个项目的这些可执行文件使用不同的版本(例如,如果某些库与 tsc
的新版本不兼容)。因此,如果 tsc
作为依赖项(或开发依赖项)安装,npm run
将执行它,而不是全局安装的那个。 gulp
和其他 CLI 工具也是如此。
npm run-script
不是一个包,它是一个内部 npm
命令,就像 install
和其他命令一样。您可以使用 npm help
进行检查 - 此命令一次显示所有内置命令的列表。
我有 VS Code 和一个使用 Typescript 的 Node.js 项目。在我的 package.json script
块中有一个项目:
"build-ts": "tsc"
如果我在集成终端命令行上运行 plain tsc
,编译没问题。但是如果我调用 npm run build-ts
,它会检测到一个文件的语法错误。错误的原因似乎来自旧的编译器版本。
如果我在命令行上运行 tsc -v
,它显示版本2.9.2。 npm run
是否在某处使用了另一个版本的 tsc?
顺便问一下,npm run
是包 npm-run-script 中的吗?我 运行 一个 npm list
并且我无法在本地或全局找到 npm-运行-script。
问题已通过评论解决,但我会将此答案留在这里作为更详细的版本。
当您执行
npm run
(或npm run-script
)时,它首先查找本地安装的可执行文件。这允许为每个项目的这些可执行文件使用不同的版本(例如,如果某些库与tsc
的新版本不兼容)。因此,如果tsc
作为依赖项(或开发依赖项)安装,npm run
将执行它,而不是全局安装的那个。gulp
和其他 CLI 工具也是如此。npm run-script
不是一个包,它是一个内部npm
命令,就像install
和其他命令一样。您可以使用npm help
进行检查 - 此命令一次显示所有内置命令的列表。