.npmignore と .gitignore の併用に関する仕様
.npmignore
と .gitignore
の関係性と仕様について。
Git の管理から外したいファイルは .gitignore
に書く。コレは普通。npm 関係なしに Git のみ使っている時もコレで良い。
npm パッケージを作っていて、.gitignore
がない時に、npm publish
したくないファイルがあれば、.npmignore
に除外ファイルを書けば良い。.npmignore
の記法は .gitignore
と全く同じ。
npm パッケージを作っていて、.gitignore
が既にあり、.npmignore
がない場合は、npm publish
時に .gitignore
が参照され、Git の管理対象外のファイルは npm に公開されないようになっている。「Git 管理したくないなら npm で公開しない方が良いよね」という配慮だろうか。
しかし、ビルドしたファイルを格納する dist/
ディレクトリなんかは、バージョン管理はしたくないけど npm publish
はしたい。そんな時は、.gitignore
の他に .npmignore
を作る。
.gitignore
と .npmignore
の両方が存在する場合に npm publish
すると、.gitignore
は参照されず、.npmignore
の内容だけが見られる。公式の説明によると、npm publish
時に .gitignore
の除外設定を完全に無効にしたければ、空ファイルで .npmignore
を置いておけば良い、と書いている。
If you want to include something that is excluded by your
.gitignore
file, you can create an empty.npmignore
file to override it.
つまり、.gitignore
に書いていて .npmignore
に書いていないファイルは npm publish
されてしまうので、基本は .gitignore
をベースに、公開したいファイルだけ除外しないように修正したファイルを .npmignore
として格納しておく必要がある。
一度理解すれば難しいことではないが、場合によっては若干「二元管理」みたいになるので注意。