VS 2015找不到模块,但cli节点工作

时间:2016-11-04 08:02:23

标签: typescript visual-studio-2015 npm

我刚开始在VS2015中使用TypeScript,到目前为止它已经很顺利了。我已经建立了一个结构,它正在编译并按预期执行。

但是当我尝试包含npm安装的模块时问题就出现了。

这没有问题:

import * as fs from 'fs';

fs默认可用。但是,当我使用npm安装其他模块(在本例中为xml2js)时,VS 2015声称无法识别该模块。

import * as xml2js from 'xml2js'; 

...

Error TS2307 Cannot find module 'xml2js'.

但有趣的是,如果我转到项目文件夹并运行cli命令

node app.js

它编译没有错误。所以看起来VS 2015无法识别模块,即使package.json包含正确的包。

另一件事,在VS 2015解决方案查看器中,列出了包,但标有红色圆圈,请参见下文:

Note the red circles on the packages in the npm tree

有谁知道红色圆圈表示什么?

我可能已经在某个地方做了一个bobo,或者跳过了一个关键部分,但我还不足以成功谷歌。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好的,感谢Juan的评论,我能够解决我的问题。当您了解TypeScript和模块的工作原理时,解决方案很简单。

简而言之,模块通常是以js开发的。当您开始使用TypeScript时,您计划使用的模块需要在开发时考虑TypeScript(请参阅Juan关于typings的评论,.d.ts文件)。已经转换为匹配的一个好例子是模块时刻。

但对于其他人,利用率较低的库,您可能需要使用DefinitelyTyped模块(DefinitelyTyped)来补充ordenary模块

在这里,您可以找到对大多数不同模块的支持。这将下载预期模块的TS补充,允许您照常导入模块。更多详细信息可以在上面的链接中找到。