Node.js 非破坏性更新

Node.js 非破坏性更新,node.js,npm,typescript,Node.js,Npm,Typescript,我正在用Typescript创建一个node.js项目,其中一些包没有内置的*.d.ts声明文件,因此我转到DefinitelyTyped,获取了文件并将它们添加到节点包中。问题是,当我执行npm更新时,文件会被删除:有没有一种方法可以在不删除这些“非托管”文件的情况下更新节点包 有没有一种方法可以在不删除这些“非托管”文件的情况下更新节点包 使用tsd+tsd.json管理这些节点外模块 有关tsd的更多信息: 有没有一种方法可以在不删除这些“非托管”文件的情况下更新节点包 使用tsd+tsd

我正在用Typescript创建一个node.js项目,其中一些包没有内置的*.d.ts声明文件,因此我转到DefinitelyTyped,获取了文件并将它们添加到节点包中。问题是,当我执行npm更新时,文件会被删除:有没有一种方法可以在不删除这些“非托管”文件的情况下更新节点包

有没有一种方法可以在不删除这些“非托管”文件的情况下更新节点包

使用tsd+tsd.json管理这些节点外模块

有关tsd的更多信息:

有没有一种方法可以在不删除这些“非托管”文件的情况下更新节点包

使用tsd+tsd.json管理这些节点外模块


有关tsd的更多信息:

您可以使用
tsd
工具下载程序包的TypeScript定义,然后在使用
导入
命令之前,使用
.ts
文件顶部的
/
注释引用它们

TypeScript 1.6还支持new,这样您就可以向编写JS包的包维护人员发送拉取请求,如果她愿意添加对TypeScript的支持,如果她调整
包,就可以开箱即用。json

package.json

{
    "name": "foo",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/foo.js",
    "typings": "./lib/foo.d.ts"
}

您可以使用
tsd
工具下载软件包的TypeScript定义,然后在使用
import
命令之前,使用
///
文件顶部的
.ts
注释引用它们

TypeScript 1.6还支持new,这样您就可以向编写JS包的包维护人员发送拉取请求,如果她愿意添加对TypeScript的支持,如果她调整
包,就可以开箱即用。json

package.json

{
    "name": "foo",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/foo.js",
    "typings": "./lib/foo.d.ts"
}

我正在使用TSD,问题是我一直将DefiniteTyped文件放在与节点包相同的目录中(必要时,重命名DefiniteTyped文件以匹配其模拟的文件名)-这是因为我不知道如何告诉我的程序模拟的JS文件在哪里。如果我不这样做,那么当我运行程序时,它不知道*.d.ts文件所指的*.js文件在哪里。哦,别担心,我明白你的意思:谢谢你,如果有bug,我今晚回家后会试试看,但是当我安装Request时,它会安装依赖项,但不会安装实际的Request.d.ts文件,tsd链接也不会进行任何更新,但我使用的是tsd,它工作得非常好。我在这里的主要问题是不理解我只是为了编译器才需要*.d.ts文件,我错误地认为*.d.ts文件必须在同一个节点模块目录中。我使用的是TSD,问题是我一直将明确类型的文件放在与节点包相同的目录中(必要时,重命名DefinitelyTyped文件以匹配其模拟的文件名)-这是因为我不知道如何告诉我的程序模拟的JS文件在哪里。如果我不这样做,那么当我运行程序时,它不知道*.d.ts文件所指的*.JS文件在哪里。哦,不管怎样,我明白你的意思:谢谢你,如果有bug,我今晚回到家时会尝试,但是当我安装Request插件时计算依赖项,但不是实际的request.d.ts文件。tsd link也没有进行任何更新,但我正在使用tsd,它工作得很好。我这里的主要问题是不理解我只是为了编译器才需要*.d.ts文件,我错误地认为*.d.ts文件必须在同一个节点模块目录中。