import * as d3 from 'd3';
あなたはnode_modules
にローカルでのみ利用可能なd3パッケージが必要なため、ブラウザでは動作しません。これは依存関係の破損(例えばwebpack)が入ったもので、必要なパッケージをすべてあなたのコードで読み込んでビルド出力に含めます。しかし、Node.jsとTypeScriptが初めてだと言ったので、これらのツールを使ってプロジェクトを設定することは非常に難しく、学習曲線はかなり急峻です。プロジェクトのニーズを調査し、ある時点で必要になることがわかったら、後でコードを適用するとさらに苦痛になる可能性があるため、webpack ASAPを使用する方法の学習を開始してください。
もう一つの選択肢は、jQueryとD3.jsを(通常のスクリプトタグを使用して)旧式の方法で組み込むことです。このシナリオでは、TypeScriptがjQueryとD3を別々に読み込んでいるときでさえも、これを "周囲宣言"と呼んでいます。これらの宣言は、これらのライブラリのグローバル変数の下で定義を公開するので、TypeScriptは、実行時にグローバルd3
または$
変数が利用可能であり、私たちが望むライブラリのAPIを保持すると仮定します。したがって、import
は必要ありません。
"@ types/jquery"と "@ types/d3"の両方には既にこれらのグローバル宣言が含まれています。 D3の場合、v4の定義をインストールしていることを確認してください。npm i --save-dev @types/[email protected]
tsconfig.jsonファイルでは、バニラ依存関係の使用に必要な手順がいくつかあります。 module
とmoduleResolution
とpick the optionsより良いスーツあなたに
{
"compileOnSave": false,
"buildOnSave": false,
"compilerOptions": {
"target": "es5",
"module": "amd",
"moduleResolution": "classic",
"sourceMap": true,
"baseUrl": ".",
"types": [
"d3",
"jquery"
]
}
}
ご注意:ここでは例です。また、types
オプションに注意してください。TypeScriptには、周囲の宣言(@types/d3
と@types/jquery
)が含まれています。これらのオプションは、そのままTypeScript 2.0用です。
正直なところ、それぞれのコンテキストが異なる設定が必要なので、すべての作業を行うために必要なことを正確に言うのは難しいです。しかし、私は少なくともあなた自身が残りの部分を把握するために正しい方向にあなたを得たことを願っています。がんばろう!
こんにちは、私を助けるためにあなたの時間を取ってくれてありがとう、ありがとう。実際にあなたは私を正しい方向に押し込んで、より多くの側面を明確にしました。あなたのおかげで、それは稼働している=)。どうもありがとう! – Chris