JSモジュール(はい、グローバルスコープ)なしで古いファッションアプリケーションを構築しています。コンパイラオプションoutFile
とdeclaration
を使用して、すべての.ts
ソースを1つのプロジェクトにまとめ、1つをd.ts
というファイルにまとめました。これは他のプロジェクトから参照しています。参照のないバンドルd.ts
私は@types
を利用し始めました。私はnode_modules
を私のプロジェクトのルートに移動しました。したがって、@types
はvisibleです。自動的にロードされます。私は&のコピーをd.ts
のすべてのプロジェクトからnode_modules\@types\
にセットしました。これは私のプロジェクト間のクロスロード宣言にも役立ちます。甘い。
私のプロジェクトにはmoment.js
が含まれていましたが、何か不愉快なことが起こりました。このライブラリにはnode_modules\moment
ディレクトリに独自の宣言ファイルがあり、tsc
はd.ts
を\\\ <references...
というディレクティブに明示的なパスで追加します。これは明らかに他のコピー先へのコピー後に一致しません。
に外部参照を直接追加する場合は、参照番号ではなくコピーを使用して直接外部宣言を追加してください。そんなことはありますか?
あなたが何を意味するのか「私は私のプロジェクトのルートにnode_modulesを移動しますか」? – gilamran
@gilamran 'project'に' library'を交換することができます。私はプロジェクトが共通の概念であるVisual Studio(コードではない)で働いています。これは、コードを持つフォルダを意味します。これは、何らかの目的のために作成したもので、単一のプロジェクトとして動作します。だから "私のプロジェクトのルート"は自分のプロジェクトフォルダのルートを意味します。 – Vaclav
これはmono-repoと呼ばれるものに似ています。あるフォルダには多くのプロジェクトが保存されています。 node_moduleをルートフォルダに置いてはいけません。それをそのまま各プロジェクトに残してください。各プロジェクトには独自の依存関係があります。 – gilamran