プロジェクトでTypeScript 2を使用しています。私はいくつかのjsライブラリを使用したいと思いますが、そのライブラリのタイピングも使用します。単純なnpm install @types/some-library
でタイプをインストールできます。それらを--save
または--save-dev
すべきかどうかはわかりません。 DefinetelyTyped GitHubのreadmeでも、両方のバージョンについて言及しているように見えますが、説明はしていません。開発には型が必要であり、実行時には使用されないため、@ typesはdevDependencies
にあるべきだと思いますが、@ typesをdependencies
で何度も見ました。よくわかりません。
@ types/*がdependencies
とdevDependencies
のどちらに入るかをどのように決定すればよいですか?実際に多少の公式指示はありますか?
DevDependenciesに@ types/some-moduleパッケージを持つパッケージ「A」を開発しているとしましょう。何らかの理由で、@ types/some-moduleからタイプをエクスポートしています
import {SomeType} from 'some-module';
export default class APackageClass {
constructor(private config: SomeType) {
}
}
現在、パッケージ "A"のdevDependenciesはインストールされていないため、パッケージ "A"のTypeScriptコンシューマーはSomeTypeを推測できません。
その特定のケースでは、通常の「依存関係」で@ types/*パッケージを配置する必要があります。その他の場合は、「devDependencies」で十分です。
バンドルを生成していますか?もしそうなら、どこに行くのかを議論するのに時間をかけすぎないことをお勧めします。 devDependencies
とdependencies
は、他のユーザーが使用できるパッケージを公開していて、無用の依存関係でスパムを送信したくない場合にのみ意味があります。
devDependencies
に配置します。あなたが言ったように「開発には型が必要であり、実行時には使用されません」。