2016-10-23 3 views
0

node_modulesにインストールされているパッケージのすべての定義ファイルを読み込むためにTypescript 2.0.3を取得するにはどうすればよいですか?Typescript 2でnode_modules内のすべての定義ファイルをロードする方法

somaticという名前のパッケージを作成しました。このパッケージにはindex.d.tsファイルが含まれており、テストプロジェクトにインストールされています。私はロードする定義を得るためにすべてを試しました。私のtsconfig.jsonのtypesおよびtypesRootオプションを使いこなしていましたが、役に立たなかったのです。

この暗黙的な参照は数時間前に機能していましたが、突然停止しました。私はTypeScript 2.0.3とVisual Studio Codeを再インストールしましたが、それでも問題は解決しません。あなたの場合は

{ 
    "compilerOptions": { 
     "allowJs": true, 
     "target": "es5", 
     "module": "commonjs", 
     "noImplicitAny": false, 
     "suppressImplicitAnyIndexErrors": true, 
     "removeComments": false, 
     "preserveConstEnums": true 
    } 
} 
+0

そのパッケージの 'package.json'ファイルにはこの設定が含まれています:' 'types": "/dist/somatic.d.ts" '。私は先頭のスラッシュを削除しようとします。 – cartant

+0

somaticパッケージのローカルにインストールされたフォルダ(node_modules内)を編集して先頭のスラッシュを削除しましたが、問題はまだ同じです – prmph

+0

"...突然停止しました" ...そのため、 – cartant

答えて

0

/// <reference path="./node_modules/somatic/dist/index.d.ts" /> 

これは私のTSconfigです:

typescriptですが、私の定義ファイルをロード持っている唯一の方法は、そのようにテストファイルの先頭に参照を追加することです"ノード"解決戦略(これは私が思うのはデフォルトです)を使用すると、TypeScriptは自身をnode_modulesフォルダ内で検索します。あなたはそれが使用するpathesの例でそのhereをもう少し読むことができます。

TypeScriptを更新する必要がありますか、node_modulesフォルダが適切な場所に配置されていない可能性があります。

+0

typeRootsオプションを削除しても、動作は同じで、node-modulesフォルダはWindowsの標準の場所にあります。 – prmph

+0

私は、ウィンドウ上の標準的な位置がどういう意味なのか分かりませんが、正しく理解していれば、ファイルの親の直接の子であるはずです。だからC:¥A¥B¥C¥myfile.tsの場合、node_moduleはA、B、またはCのいずれかのフォルダにあるか、またはC:ドライブの直下になければなりません。たとえば、 Visual Studioの場合、node_modulesはプロジェクトルートの下にあるフォルダで、プロジェクトルートの下にあるすべてのファイルにアクセスできます。 –

+0

はい私は私のプロジェクトフォルダの下にローカルnode_modulesを持っています。そして、私はまた、Windows上の標準的な場所にグローバルnode_modulesを持っています – prmph

関連する問題