つぶやきテック

日々のつぶやきアウトプット

つぶやきpackage.json

package.json とは

  • 自分のNode.jsプロジェクトが依存する(参照したり、利用したりする)パッケージの管理に主に用いられるファイルです。
  • 一般的に、パッケージレジストリ(npm, apt, pip...) ではパッケージ同士が「依存のネットワーク」を構成しています。例えば babel-cli の依存マップはこんな感じ。

f:id:fugithora812:20210422050325p:plain
参考:https://npmgraph.js.org/?q=babel-cli

dependencies と devDependencies

# dependencies に追加
$ npm install express

# devDependencies に追加
$ npm install --save-dev nodemon
  • パッケージの依存関係を記入するためのプロパティとして、dependencies と devDependenciesがあります。

この2つには以下の違いがあります。

npm install に --production が渡されたり環境変数が NODE_ENV=production にセットされているとき、devDependenciesはインストールされない
そのプロジェクトがnpmパッケージとしてインストールされたとき、dependenciesのパッケージは一緒にインストールされるが、devDependenciesはインストールされない
(引用元:npmのpackage.jsonと依存関係を理解しよう! - bagelee(ベーグリー)

  • つまるところ、開発・テストのシーンでのみ使うパッケージはdevDependenciesに追加するのが望ましいです。

主なプロパティ(随時更新)

lint-staged

  • コミット前のファイルのLintを強制できるプロパティです。

設定例:

  "lint-staged": {
    "linters": {
      "*.js": "eslint --max-warnings=0",
      "*.ts": [
        "eslint --max-warnings=0",
        "tslint"
      ],
      "*.scss": "stylelint",
    },