---
# System prepended metadata

title: npm package.json の設定項目　2021-05-13
tags: [npm, package.json]

---

---
lang: ja-jp
breaks: true
---
# npm package.json の設定項目　2021-05-13

> npm package.json 取扱説明書
> http://liberty-technology.biz/PublicItems/npm/package.json.html


| 項目                 | 形式／例                 | 説明                                                                                                                                                                                                                                                                             |
|:-------------------- |:------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| main                 | `app.js`                 | モジュールの中で最初に呼ばれるスクリプトファイルを指定。<br>例えばモジュールにfooと名前をつけ、それをユーザーがインストールし、require("foo")を実行した時にmainで指定したモジュールのexportsオブジェクトが返される。<br>パッケージルートからの相対パスを指定しなければいけない。 |
| dependencies         | `"express": "~4.17.1"`   | 実行する上でアプリケーションが依存するモジュールとバージョンを記述。                                                                                                                                                                                                             |
| devDependencies      | `"store": "~2.0.12"`     | 実行には必要ないが、開発・運用上で依存するパッケージを記述。<br>※テストスクリプトを自動実行するようなものやトランスパイラー(リリースモジュールをビルどするためのモジュール) 。                                                                                                   |
| optionalDependencies | `"bufferutil": "~4.0.0"` | 環境によって依存ライブラリが変わる場合に使用します。インストール時にエラーとなってもスキップされ、後続の処理が実行されます。                                                                                                                                                     |
| peerDependencies     |                          | プラグインモジュール、シングルトンモジュールを記述します。                                                                                                                                                                                                                       |
| bundledDependencies  |                          | npmにないライブラリ、変更を加えたライブラリを記述します。                                                                                                                                                                                                                        |
| engines              | `>=10.0.0 <13.0.0`       | 動作するNode.jsのバージョンを記述します。                                                                                                                                                                                                                                        |


## パッケージ名の `@～/～` について

> package name を @(npm アカウント名)/hoge のようにして @ に続いて後述する npmjs のアカウント名をつける (例: @propella/hoge) と後で package を公開する時に名前が被らなくて便利。これを scoped packages と呼ぶ。
>
> ### ある scope のパッケージだけを独自の npm registry からインストールする。
> @piyo/hoge のようにある scope のついたパッケージだけを独自の npm registry からインストールする事も出来る (Associating a scope with a registry)。
> 
> `npm install @piyo/hoge`
> @piyo/hoge という名前のパッケージが対象の npm registry に必要だ。つまり、対象の npm registry にある hoge というパッケージを @piyo/hoge という名前で install 出来るわけでは無い。
> 
> https://qiita.com/propella/items/6f1bb5db5225fba6cd85
> 
###### tags: `npm` `package.json`
