Javascript 如何让Typescript 2加载节点_模块中的所有定义文件

Javascript 如何让Typescript 2加载节点_模块中的所有定义文件,javascript,node.js,typescript,types,Javascript,Node.js,Typescript,Types,如何让Typescript 2.0.3加载安装到节点_模块的任何包中的所有定义文件 我编写了一个名为Social的包,其中包含index.d.ts文件,并将其安装到一个测试项目中。我尝试了所有方法来加载定义,在tsconfig.json中混用了类型和typesRoot选项,但没有成功 这个隐式引用在几个小时前就开始工作了,但它突然停止了工作。我已经重新安装了TypeScript 2.0.3和Visual Studio代码,但问题仍然存在 让typescript加载我的定义文件的唯一方法是在测试文

如何让Typescript 2.0.3加载安装到节点_模块的任何包中的所有定义文件

我编写了一个名为Social的包,其中包含index.d.ts文件,并将其安装到一个测试项目中。我尝试了所有方法来加载定义,在tsconfig.json中混用了类型和typesRoot选项,但没有成功

这个隐式引用在几个小时前就开始工作了,但它突然停止了工作。我已经重新安装了TypeScript 2.0.3和Visual Studio代码,但问题仍然存在

让typescript加载我的定义文件的唯一方法是在测试文件的顶部添加一个引用,如下所示:

/// <reference path="./node_modules/somatic/dist/index.d.ts" />
如果使用“节点”解析策略(我认为这是默认策略),那么TypeScript会在node_modules文件夹中搜索自身。您可以阅读更多关于它使用的路径的示例

可能您需要更新TypeScript,或者您的node_modules文件夹未放置在适当的位置,因此无法找到它?

如果您使用“node”解析策略(我认为这是默认策略),则TypeScript会在node_modules文件夹中搜索自身。您可以阅读更多关于它使用的路径的示例


可能您需要更新TypeScript,或者您的node_modules文件夹未放置在适当的位置,因此无法找到它?

该包的
包。json
文件包含以下设置:
“types”:“/dist/social.d.ts”
。我会尝试删除前导斜杠。我编辑了Social软件包的本地安装文件夹(在node_模块中)以删除前导斜杠,但问题仍然是“突然停止工作”。。。那么,在它停止工作之前发生了什么变化呢?这种情况以前发生过好几次:我在一个d.ts文件中添加了一个新的类型声明,突然所有的类型都无法识别(它们下面有几条曲线)。我删除了刚才添加的类型声明,问题仍然存在。在以前的情况下,重新安装VsCode解决了这个问题,但这一次并没有,因为包的
package.json
文件包含以下设置:
“类型”:“/dist/social.d.ts”
。我会尝试删除前导斜杠。我编辑了Social软件包的本地安装文件夹(在node_模块中)以删除前导斜杠,但问题仍然是“突然停止工作”。。。那么,在它停止工作之前发生了什么变化呢?这种情况以前发生过好几次:我在一个d.ts文件中添加了一个新的类型声明,突然所有的类型都无法识别(它们下面有几条曲线)。我删除了刚才添加的类型声明,问题仍然存在。在以前的情况下,重新安装VsCode解决了问题,但这次不是,即使我删除了typeRoots选项,行为也是一样的,并且我的节点模块文件夹位于windows上的标准位置。我不确定windows上的标准位置指的是什么,如果我理解正确,它应该是您文件的任何父级的直接子级。例如,如果您有C:\A\B\C\myfile.ts,那么节点_模块应该位于A、B或C文件夹中,或者直接位于驱动器C:。如果使用Visual Studio,则node_模块是项目根目录下的一个文件夹,因此项目根目录下的所有文件都可以访问。是的,我的项目文件夹下有本地node_模块。我在Windows上的标准位置也有全局节点_模块对不起,我不确定。您可以尝试将模块解析策略强制为“node”,但在某些版本的TS之后,这应该是默认值。可能Visual Studio代码会任意更改typescript编译器使用的当前文件夹?如果愿意,您可以通过将node_模块放入根驱动器来检查,尽管“修复”不会有多大帮助。即使我删除了typeRoots选项,行为也是一样的,并且我的node modules文件夹位于windows上的标准位置。我不确定您所说的windows上的标准位置是什么意思,如果我理解正确,它应该是您文件的任何父级的直接子级。例如,如果您有C:\A\B\C\myfile.ts,那么节点_模块应该位于A、B或C文件夹中,或者直接位于驱动器C:。如果使用Visual Studio,则node_模块是项目根目录下的一个文件夹,因此项目根目录下的所有文件都可以访问。是的,我的项目文件夹下有本地node_模块。我在Windows上的标准位置也有全局节点_模块对不起,我不确定。您可以尝试将模块解析策略强制为“node”,但在某些版本的TS之后,这应该是默认值。可能Visual Studio代码会任意更改typescript编译器使用的当前文件夹?如果愿意的话,可以通过将node_模块放到根驱动器来检查,尽管“修复”并没有多大帮助。
{
    "compilerOptions": {
        "allowJs": true,
        "target": "es5",
        "module": "commonjs",
        "noImplicitAny": false,
        "suppressImplicitAnyIndexErrors": true,
        "removeComments": false,
        "preserveConstEnums": true
    }
}