VSCode で TypeScript 書いてるときに aws-sdk が cannot find module になる件
最近 Flowtype から TypeScript に乗り換えました。
主に VSCode で書いてるんですが、
こういうエラーが出る件について。
TypeScript のコンパイラは通るので、たぶん VSCode の問題なのかなと思ってます。
VSCode と TypeScript とで依存解決の仕組みが違うんでしょうか。
とりあえず tsconfig.json
にこのように書くと直りました。
{
...
"files": [
"node_modules/aws-sdk/index.d.ts",
"index.ts"
],
...
}
TypeScript サーバーを再起動するか VSCode を再起動することで反映されます。
index.ts
はアプリケーションのメインなので適宜変えてください。
TSLint と両立しない問題
で、先のように変えると今度は TSLint を tslint --fix --project tsconfig.json 'index.ts' 'src/**/*'
みたいに実行している場合に src/**/*
が tsconfig.json
の files
に存在しないため正常にリントできません。
files
ではなく include
で設定すれば TSLint は問題ないのですが、また aws-sdk が cannot find module になるというループに陥ります。(なぜ files
でなければならないのか )
ツラいですが、TypeScript のための tsconfig.json
と、TSLint のための tsconfig.lint.json
を作って、TSLint の実行を tslint --fix --project tsconfig.lint.json 'index.ts' 'src/**/*'
のようにすることで解決しています。
tsconfig.json
には先のように files
指定を含み、tsconfig.lint.json
にはそれを含めず CLI オプションを使います。
@types に登録のあるライブラリでも、ライブラリ自体が declaration を提供している場合でも、同様の問題は起きていないのでなぜ aws-sdk だけなのかは分かりません。index.d.ts
ではなく aws-sdk.d.ts
じゃないと解決できないとかそんな感じでしょうか。
もっとスマートな対応方法があればどなたか教えてください。
アップデートで直ることを期待してます。
Author And Source
この問題について(VSCode で TypeScript 書いてるときに aws-sdk が cannot find module になる件), 我々は、より多くの情報をここで見つけました https://qiita.com/aggre/items/b4a6e70dd8e92bb4abda著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .