Closed1

dependanciesとdevDependancies【いまさら】

m_03m_03

dependanciesとdevDependanciesのどちらにライブラリを含めるべきか

毎度新規プロジェクトを立ち上げるたびに、例えば@types/~系のパッケージ等、どっちに入れればいいのか迷って、気づけば放置していることが多かったため改めて調べた。

パッケージとして他の開発者に公開する場合

例えば、パッケージを作りそれnpm等でほかの開発者に公開した場合、他の開発者がソースのAPackageClassを使用したいと思ったとき、'some-module'からimportしているSomeTypeを参照したいはず。

import { SomeType } from 'some-module';

export default class APackageClass {
  constructor(private config: SomeType) {
    // …       
  }
}

もし'some-module'がパッケージのdevDependanciesに含まれていた場合、開発者に対して公開されていないため参照することができない。
そのため、開発したpackageを公開する、第三者が開発で使用する場合は、利用の想定に応じてdependanciesに含める必要がある。

サービスとしてユーザーに公開するだけの場合

プロジェクトが開発での利用が想定されない場合は、@types系のライブラリはdevDependanciesに記載する。

参考

https://stackoverflow.com/questions/45176661/how-do-i-decide-whether-types-goes-into-dependencies-or-devdependencies
https://typescript-jp.gitbook.io/deep-dive/index

このスクラップは2024/01/15にクローズされました