我创建了一个项目(名为data_model
),其中包含一些在我的其他项目中有用的类。我创建了一个完整的文件gulpfile.js
,它不仅将我的 .ts 编译为 .js,而且创建了一个.d.ts
导出符号的统一文件,该文件被命名data_model.d.ts
并将位于项目的根目录。
现在,我创建了第二个项目,我们称之为它my_cool_api
,它在其依赖项中定义了对data_model
Running的 git 的依赖项npm install
,.js 文件被下载到我的node_modules
一切都很好,色彩斑斓。但是typings文件夹。
my_cool_api
|—— package.json
|—— …
|—— app.ts
|—— node_modules
|—— data_model
|—— data_model.d.ts
|—— index.js
|—— lib
|—— my_class.js
|—— typings
|—— tsd.d.ts
|—— node
|—— …
这里的问题是文件data_model.d.ts
,因为该文件的第一行将引用一个不存在的类型文件夹。让我们来看看
///<reference path=“typings/mongoose/mongoose.d.ts" />
declare module 'data_model' {
import mongoose = require('mongoose');
export class MyClass {
…
}
}
那是我现在正在生成的 .d.ts 的标题。我曾尝试复制类型文件夹(使其不会被 .npmignore 忽略将在 npm 安装期间安装该文件夹),这会创建以下内容
|—— package.json
|—— …
|—— app.ts
|—— node_modules
|—— data_model
|—— data_model.d.ts
|—— typings <<<<<<<<<<<<<<<<<<< ADDED
|—— tsd.d.ts
|—— node
|—— ...
|—— index.js
|—— lib
|—— my_class.js
|—— typings
|—— tsd.d.ts
|—— node
|—— …
但是这会给我一百个“重复错误”(我猜是因为周围会有几个 node.d.ts 文件)。例如:
[16:44:33] [tsc] > /my_cool_api/typings/node/node.d.ts(1553,9): error TS2300: Duplicate identifier 'cleartext'.
我现在的解决方案是将我在 node_modules 中找到的任何 .d.ts 文件复制到我的类型文件夹,并将复制文件的第一行(引用)更改为我的相关类型文件夹。
应该有办法做到这一点。(我也尝试过使用 tsd link 命令)
任何帮助将不胜感激。