TypeScriptプロジェクトをセットアップしてbootstrap 4をPopper、jQuery、およびVisual Studio CodeのKnockout。
ノックアウト、jquery、およびbootstrapタイプ定義をインストールしました。
npm install -–save @types/knockout
npm install -–save @types/jquery
npm install --save @types/bootstrap
require.js設定でJSファイルを参照しました
declare var require: any;
require.config({
paths: {
"knockout": "externals/knockout-3.5.0",
"jquery": "externals/jquery-3.3.1.min",
"popper.js": "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js",
"bootstrap": "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
}
})
俺の tsconfig.json
これは:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"*": ["types/*"]
},
"outDir": "./built/",
"sourceMap": true,
"noImplicitAny": true,
"module": "AMD",
"target": "es5"
},
"files":[
"src/require-config.ts",
"src/hello.ts"
]
}
プロジェクトをコンパイルしようとすると、次のエラーが発生します。
node_modules/@types/bootstrap/index.d.ts:9:25 - error TS2307: Cannot find module 'popper.js'.
9 import * as Popper from "popper.js";
~~~~~~~~~~~
Found 1 error.
The terminal process terminated with exit code: 1
Bootstrapタイプ定義ファイルはpopper.jsモジュールを見つけることができないため、コンパイルに失敗します。
Popper.jsモジュールは、@ typesフォルダーにあります
node_modules
|-@types
| |- bootstrap
| |-index.d.ts (this is failing)
|- popper.js
|- index.d.ts (popper.js type definition)
TypeScriptコンパイラに、bootstrap型定義が探しているpopper.jsが階層の上位にあることを伝えるにはどうすればよいですか。
これに近づいても答えを見つけることができませんでした。したがって、他の誰もが遭遇したことのないバグに遭遇した(可能性が低い)か、TypeScriptを初めて使用したか、環境を不適切にセットアップして、他のすべての人が取得する非常に基本的なセットアップ手順に失敗したため、誰もこれまでにない(たぶん)尋ねなければなりませんでした。
これを修正するにはどうすればよいですか?
これは私が問題を抱えたときに私に思いついた最初の結果です。
このGithubコメント は私を助けました。
このライブラリにはDOMライブラリが必要です(ブラウザ環境)
Tsconfig.jsonのcompilerOptions.libにdomおよび 'es2017'を追加する必要があります。
"lib": [ "DOM" ]
をtsconfig.json
に追加しただけで機能し、es5
をターゲットにしています。