我使用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
什么可能导致这种行为?
答案 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 .
冲突。