--- 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`