data_model
他のプロジェクトで役立ついくつかのクラスを含むプロジェクト (という名前) を作成しました。gulpfile.js
.ts を .js にコンパイルするだけでなく.d.ts
、シンボルをエクスポートする統合ファイルを作成する完全なものを作成しました。ファイルには名前が付けられdata_model.d.ts
、プロジェクトのルートになります。
my_cool_api
ここで、2 番目のプロジェクトを作成します。その依存関係で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
。そのファイルの最初の行が、存在しないtypingsフォルダーへの参照を作成するためです。見てみましょう
///<reference path=“typings/mongoose/mongoose.d.ts" />
declare module 'data_model' {
import mongoose = require('mongoose');
export class MyClass {
…
}
}
これは、現在生成している .d.ts のヘッダーです。私はtypingsフォルダーを複製しようとしました(.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 ファイルを自分のtypings フォルダーにコピーし、コピーしたファイルの最初の行 (参照) を相対的なtypings フォルダーに変更することです。
これを行う方法があるはずです。(私も tsd link コマンドで試しました)
助けていただければ幸いです。