在`npm run`脚本中使用的不同版本的Typescript

时间:2016-06-23 03:24:03

标签: typescript npm npm-run

我使用npm as my build tool,我scripts文件的packages.json字典中的一个条目是"tsc",这会导致我项目中的.ts个文件要编译。但是,当我直接调用> tsc时,我注意到我收到了不同的TypeScript错误消息。致电> npm run start。我将脚本条目更新为(tsc -v; tsc),然后我得到:

> npm run build
message TS6029: Version 1.6.2

而如果我直接调用相同的命令,我得到:

> (tsc -v; tsc)
Version 1.8.10

什么可能导致这种行为?

2 个答案:

答案 0 :(得分:0)

糟糕。查看我的package.json文件,我意识到devDependencies包含此条目:"typescript": "~1.6.2"。我将其更新为~1.8.10并执行了> npm install,问题就消失了。

答案 1 :(得分:0)

另一个考虑因素(对于那些也可能遇到类似问题,但没有直接依赖性的人),其他npm软件包可能依赖于TypeScript,而这些软件包使用的是旧版本。在这种情况下,你不会在package.json文件中看到任何内容,但是npm会找到传递依赖项并使用它。

例如,grunt-typescript模块依赖于TypeScript,但该模块已过时且过时 - 即使它仍然有效。这可能会导致与安装后脚本中的tsc -p .冲突。