使用 npm run 时是不是使用了不同版本的 tsc?
Posted
技术标签:
【中文标题】使用 npm run 时是不是使用了不同版本的 tsc?【英文标题】:Is a different version of tsc used when using npm run?使用 npm run 时是否使用了不同版本的 tsc? 【发布时间】:2018-12-24 17:09:45 【问题描述】:我有一个 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。
【问题讨论】:
您是否在本地安装了tsc
,在项目的node_modules
文件夹中?好像npm run
先看这里。
就是这样!有一个版本作为开发依赖项。谢谢。
【参考方案1】:
问题已通过评论解决,但我将把这个答案留在这里作为更详细的版本。
当您执行npm run
(或npm run-script
)时,它首先查找本地安装的可执行文件。这允许为每个项目使用不同版本的这些可执行文件(例如,如果某些库与 tsc
的新版本不兼容)。因此,如果tsc
被安装为依赖项(或开发依赖项),npm run
将执行它,而不是全局安装的那个。 gulp
和其他 CLI 工具也是如此。
npm run-script
不是一个包,它是一个内部的npm
命令,就像install
和其他命令一样。您可以通过npm help
进行检查 - 此命令一次显示所有内置命令的列表。
【讨论】:
以上是关于使用 npm run 时是不是使用了不同版本的 tsc?的主要内容,如果未能解决你的问题,请参考以下文章
NPM 模块画布是使用 NODE_MODULE_VERSION 88 针对不同的 Node.js 版本编译的
npm install使用^ dependency而不是完全匹配
vue中Npm run build 根据环境传递参数方法来打包不同域名
vuejs中执行npm run dev出现页面cannot GET/问题