Help us understand the problem. What is going on with this article?

fixpackでpackage.jsonの各項目を並び替える

More than 3 years have passed since last update.

Node.js でコードを書くときに、必ず目にする package.json
その、package.json に関する知見である。

package.json の並び順

package.json の並び順であるが、私は「package.json | npm Documentation」に書かれている順番で記述することが多い。(デファクト・スタンダードか公式に沿っておくのが無難である)

しかし、毎回手動で並び替えるのは手間である。
そこで、fixpack を利用してフォーマットすると良い。

fixpack で並び替える

インストール

グローバルにインストールする。

$ npm i -g fixpack

fixpack を使う

package.json が存在するディレクトリで、以下を実行する。
デフォルトでは、name description version author の順で並び替えて、残りをアルファベット順で並び替える。

$ fixpack

並び順を設定ファイルで指定する

自分で決めた並び順にしたい場合は、設定ファイルで上書きすることができる。
$HOME ディレクトリに .fixpackrc を作成して、JSON形式で書いていく。

筆者の .fixpackrc

参考までに、自分の .fixpackrc を貼っておく。

.fixpackrc
{
  "sortToTop": [
    "name",
    "version",
    "description",
    "keywords",
    "homepage",
    "bugs",
    "license",
    "author",
    "files",
    "main",
    "bin",
    "man",
    "directories",
    "repository",
    "scripts",
    "config",
    "dependencies",
    "devDependencies",
    "peerDependencies",
    "bundledDependencies",
    "optionalDependencies",
    "engines",
    "os",
    "cpu",
    "private",
    "publishConfig"
  ],
  "required": [
    "name",
    "version"
  ],
  "warn": [
    "description",
    "keywords",
    "homepage",
    "bugs",
    "license",
    "author",
    "main",
    "repository"
  ],
  "sortedSubItems": [
    "files",
    "directories",
    "dependencies",
    "devDependencies",
    "peerDependencies",
    "bundledDependencies",
    "optionalDependencies"
  ]
}

sortToTop が並び順の指定である。
並び順以外にも、無いとエラーを吐く項目の指定や、無いと警告を出す項目の指定などを行っている。
他にも幾つかの設定項目があるので、README.md を見ると良い。

まとめ

package.json の各項目の並び替えには fixpack を利用すると良い。

0x50
コーダーです。インターフェイス周りのデザインや実装をやります。フロントエンドからサーバーサイドまで、色んな領域に足を突っ込んでは引き抜いてを繰り返しています。
http://p1ch.jp
dena_coltd
    Delight and Impact the World
https://dena.com/jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away