Node.js
npm
サーチ…
前書き
Node Package Manager(npm)は、以下の2つの主要機能を提供します。search.nodejs.orgで検索可能なnode.jsパッケージ/モジュールのオンラインリポジトリ。 Node.jsパッケージをインストールするコマンドラインユーティリティは、Node.jsパッケージのバージョン管理と依存関係管理を行います。
構文
- npm <command>ここで、<command>は次のいずれかです。
- ユーザーを追加する
- ユーザーを追加する
- apihelp
- 著者
- ビン
- バグ
- c
- キャッシュ
- 完了
- 設定
- ddp
- 重複除外
- 非難する
- ドキュメント
- 編集
- 探検する
- よくある質問
- 見つける
- ファインダーを見つける
- 取得する
- 助けて
- ヘルプ検索
- 自宅
- 私
- インストール
- 情報
- その中に
- isntall
- 問題
- ラ
- リンク
- リスト
- II
- ln
- ログイン
- ls
- 時代遅れの
- オーナー
- パック
- プレフィックス
- プルーン
- 公開する
- r
- rb
- 再構築する
- 除去する
- レポ
- 再起動
- rm
- ルート
- 実行スクリプト
- s
- セ
- サーチ
- セット
- ショー
- 収縮包装
- 星
- 星
- 開始
- やめる
- サブモジュール
- タグ
- テスト
- TST
- 国連
- アンインストール
- リンクを解除する
- 未公開
- アンスター
- アップ
- 更新
- v
- バージョン
- 見る
- 私は誰
パラメーター
パラメータ | 例 |
---|---|
アクセス | npm publish --access=public |
ビン | npm bin -g |
編集 | npm edit connect |
助けて | npm help init |
その中に | npm init |
インストール | npm install |
リンク | npm link |
プルーン | npm prune |
公開する | npm publish ./ |
再起動 | npm restart |
開始 | npm start |
やめる | npm start |
更新 | npm update |
バージョン | npm version |
パッケージのインストール
前書き
パッケージは、開発者がプロジェクトに使用できるツールを示すためにnpmによって使用される用語です。これには、jQueryやAngularJSなどのライブラリやフレームワークからGulp.jsなどのタスクランナーまでのすべてが含まれます。パッケージは通常はnode_modules
というフォルダに入っています。このフォルダにはpackage.json
ファイルも含まれています。このファイルには、特定のパッケージを使用するために必要な追加モジュールである依存関係を含むすべてのパッケージに関する情報が含まれています。
Npmはコマンドラインを使用してパッケージのインストールと管理を行うため、npmを使用しようとするユーザーはオペレーティングシステムの基本的なコマンド、つまりディレクトリの移動とディレクトリの内容を見ることができます。
NPMのインストール
パッケージをインストールするには、NPMがインストールされている必要があります。
NPMをインストールするには、 Node.jsダウンロードページのインストーラを使用することをお勧めします 。 npm -v
またはnpm version
コマンドを実行して、node.jsがすでにインストールされているかどうかを確認することができます。
Node.jsインストーラを使用してNPMをインストールした後は、必ずアップデートを確認してください。これは、NPMがNode.jsインストーラより頻繁に更新されるためです。更新を確認するには、次のコマンドを実行します。
npm install npm@latest -g
パッケージのインストール方法
1つまたは複数のパッケージをインストールするには、以下を使用します。
npm install <package-name>
# or
npm i <package-name>...
# e.g. to install lodash and express
npm install lodash express
注意 :これにより、コマンドラインが現在存在するディレクトリにパッケージがインストールされるため、適切なディレクトリが選択されているかどうかを確認することが重要です
現在の作業ディレクトリにpackage.json
ファイルがあり、依存関係が定義されている場合、 npm install
は自動的にファイルにリストされているすべての依存関係を解決してインストールします。また、 npm install
コマンドの簡略版を使用することもできますnpm i
特定のバージョンのパッケージをインストールする場合は、次のようにします。
npm install <name>@<version>
# e.g. to install version 4.11.1 of the package lodash
npm install [email protected]
特定のバージョン範囲に一致するバージョンをインストールする場合は、次のようにします。
npm install <name>@<version range>
# e.g. to install a version which matches "version >= 4.10.1" and "version < 4.11.1"
# of the package lodash
npm install lodash@">=4.10.1 <4.11.1"
最新バージョンをインストールするには、次のコマンドを使用します。
npm install <name>@latest
上記のコマンドは、 npmjs.comの中央のnpm
リポジトリにあるパッケージを検索します。 npm
レジストリからインストールするnpm
がない場合は、次のようなオプションがサポートされています:
# packages distributed as a tarball
npm install <tarball file>
npm install <tarball url>
# packages available locally
npm install <local path>
# packages available as a git repository
npm install <git remote url>
# packages available on GitHub
npm install <username>/<repository>
# packages available as gist (need a package.json)
npm install gist:<gist-id>
# packages from a specific repository
npm install --registry=http://myreg.mycompany.com <package name>
# packages from a related group of packages
# See npm scope
npm install @<scope>/<name>(@<version>)
# Scoping is useful for separating private packages hosted on private registry from
# public ones by setting registry for specific scope
npm config set @mycompany:registry http://myreg.mycompany.com
npm install @mycompany/<package name>
通常、モジュールは現在の作業ディレクトリにあるnode_modules
という名前のフォルダにローカルにインストールされます。 require()
がモジュールを利用できるように読み込むために使用するディレクトリです。
package.json
ファイルをすでに作成している場合は、 - --save
(短縮形-S
)オプションまたはその変形の1つを使用して、インストールされたパッケージを依存関係としてpackage.json
に自動的に追加することができます。他の人があなたのパッケージをインストールすると、 npm
は自動的にpackage.json
ファイルから依存関係を読み込み、リストされたバージョンをインストールします。後でファイルを編集して依存関係を追加して管理することもできますので、通常は依存関係を追跡することをお勧めします。たとえば、次のようにします。
npm install --save <name> # Install dependencies
# or
npm install -S <name> # shortcut version --save
# or
npm i -S <name>
パッケージをインストールして、アプリケーションの実行に必要な場合ではなく、アプリケーションを実行するためではなく、開発に必要な場合にのみ保存します。次のコマンドを実行します。
npm install --save-dev <name> # Install dependencies for development purposes
# or
npm install -D <name> # shortcut version --save-dev
# or
npm i -D <name>
依存関係のインストール
モジュールによっては、使用するライブラリを提供するだけでなく、コマンドラインで使用するための1つ以上のバイナリも提供しています。それらのパッケージをローカルにインストールすることはできますが、コマンドラインツールを有効にできるように、これらのパッケージをグローバルにインストールすることをお勧めします。その場合、 npm
はバイナリを適切なパス(例えば/usr/local/bin/<name>
)に自動的にリンクしてコマンドラインから使用できるようにします。パッケージをグローバルにインストールするには、以下を使用します。
npm install --global <name>
# or
npm install -g <name>
# or
npm i -g <name>
# e.g. to install the grunt command line tool
npm install -g grunt-cli
インストールされているすべてのパッケージと関連するバージョンのリストを現在のワークスペースに表示するには、次のようにします。
npm list
npm list <name>
オプションのname引数を追加すると、特定のパッケージのバージョンを確認できます。
注意: npmモジュールをグローバルにインストールしようとしているときに権限の問題にsudo npm install -g ...
した場合は、問題を解決するためにsudo npm install -g ...
をsudo npm install -g ...
誘惑に抵抗してください。昇格された権限でシステム上でサードパーティのスクリプトを実行することは危険です。権限の問題は、 npm
自体のインストール方法に問題がある可能性があります。サンドボックス化されたユーザー環境にNodeをインストールする場合は、 nvmを試してみてください 。
ビルドツールや他の開発専用の依存関係(Gruntなど)がある場合は、それらをデプロイするアプリケーションにバンドルする必要はありません。その場合、 devDependencies
下のpackage.json
リストされている開発依存関係にしたいと思うでしょう。パッケージを開発専用の依存関係としてインストールするには、 - --save-dev
(または-D
)を使用します。
npm install --save-dev <name> // Install development dependencies which is not included in production
# or
npm install -D <name>
そのパッケージがあなたのpackage.json
devDependencies
に追加されていることがdevDependencies
ます。
ダウンロード/複製されたnode.jsプロジェクトの依存関係をインストールするには、
npm install
# or
npm i
npmは自動的にpackage.json
から依存関係を読み込んでインストールします。
プロキシサーバーの背後にあるNPM
インターネットへのアクセスがプロキシサーバー経由の場合は、リモートリポジトリにアクセスするnpm installコマンドを変更する必要があります。 npmは、コマンドラインで更新できる設定ファイルを使用します:
npm config set
ブラウザの設定パネルからプロキシ設定を見つけることができます。プロキシ設定(サーバーのURL、ポート、ユーザー名とパスワード)を取得したら、次のように、npm構成を構成する必要があります。
$ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
$ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>
username
、 password
、 port
フィールドはオプションです。これらを設定すると、 npm install
、 npm i -g
などが適切に動作します。
スコープとリポジトリ
# Set the repository for the scope "myscope"
npm config set @myscope:registry http://registry.corporation.com
# Login at a repository and associate it with the scope "myscope"
npm adduser --registry=http://registry.corporation.com --scope=@myscope
# Install a package "mylib" from the scope "myscope"
npm install @myscope/mylib
独自のパッケージの名前が@myscope
で始まり、スコープ "myscope"が別のリポジトリに関連付けられている場合、 npm publish
はパッケージをそのリポジトリにアップロードします。
これらの設定を.npmrc
ファイルに保存することもできます。
@myscope:registry=http://registry.corporation.com
//registry.corporation.com/:_authToken=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx
これは、CIサーバーfeでビルドを自動化する場合に便利です。
パッケージのアンインストール
1つまたは複数のローカルにインストールされたパッケージをアンインストールするには、
npm uninstall <package name>
npmのアンインストールコマンドには、次の5つのエイリアスも使用できます。
npm remove <package name>
npm rm <package name>
npm r <package name>
npm unlink <package name>
npm un <package name>
アンインストールの一環としてpackage.json
ファイルからパッケージを削除する場合は、 - --save
フラグ(略称: -S
)を使用します。
npm uninstall --save <package name>
npm uninstall -S <package name>
開発の依存関係の場合、-- --save-dev
フラグを使用します(略称-D
)。
npm uninstall --save-dev <package name>
npm uninstall -D <package name>
オプションの依存関係の場合は、 - --save-optional
フラグを使用し--save-optional
(省略形: -O
)。
npm uninstall --save-optional <package name>
npm uninstall -O <package name>
グローバルにインストールされたパッケージの場合は、 --global
グローバルフラグを使用し--global
(略称: -g
)。
npm uninstall -g <package name>
基本的なセマンティックバージョン管理
パッケージを公開する前に、パッケージをバージョンアップする必要があります。 npmはセマンティックバージョニングをサポートしています。つまり、 パッチ、マイナー、メジャーリリースがあります。
たとえば、バージョンを変更するためにパッケージがバージョン1.2.3にある場合は、次の操作が必要です。
- パッチリリース:
npm version patch
=> 1.2.4 - マイナーリリース:
npm version minor
=> 1.3.0 - メジャーリリース:
npm version major
=> 2.0.0
バージョンを直接指定することもできます:
npm version 3.1.4
=> 3.1.4
上記のnpmコマンドの1つを使用してパッケージバージョンを設定すると、npmはpackage.jsonファイルのバージョンフィールドを変更してコミットし、 "v"という接頭辞を持つ新しいGitタグを作成します。コマンドを発行しました:
git tag v3.1.4
Bowerのような他のパッケージマネージャとは異なり、npmレジストリはすべてのバージョンで作成されるGitタグに依存しません。しかし、タグを使うのが好きな場合は、パッケージバージョンをバンプしてから新しく作成したタグを押してください。
git push origin master
(変更をpackage.jsonにプッシュするため)
git push origin v3.1.4
(新しいタグをプッシュするため)
または、次の方法でこれを行うことができます。
git push origin master --tags
パッケージ構成の設定
Node.jsパッケージの設定は、各プロジェクトのルートにあるpackage.json
というファイルに含まれています。新しい設定ファイルを設定するには、次の関数を呼び出します。
npm init
これはGitリポジトリ情報(存在する場合)の現在の作業ディレクトリと環境変数を読み込み、あなたのプレースホルダ値の一部を自動補完しようとします。それ以外の場合は、基本オプションの入力ダイアログが表示されます。
デフォルト値を使用してpackage.json
を作成するには、次のようにします。
npm init --yes
# or
npm init -y
npmパッケージとして公開しないプロジェクト(つまり依存関係を切り上げる目的のみ)にpackage.json
を作成している場合は、 package.json
ファイルにその意図を伝えることができます:
- 必要に応じて、
private
プロパティをtrueに設定して、誤ったパブリッシュを防止します。 - 必要に応じて、
license
プロパティを「無制限」に設定して、他の人がパッケージを使用する権利を拒否します。
パッケージをインストールしてpackage.json
自動的に保存するには、次のようにします。
npm install --save <package>
パッケージと関連するメタデータ(パッケージのバージョンなど)が依存関係に表示されます。開発依存として( --save-dev
を使用して)保存すると、そのパッケージは代わりにdevDependencies
に表示されます。
このベアボーンpackage.json
では、パッケージのインストールまたはアップグレード時に警告メッセージが表示され、説明とリポジトリフィールドが不足していることが通知されます。これらのメッセージを無視することは安全ですが、任意のテキストエディタでpackage.jsonを開き、次の行をJSONオブジェクトに追加することで、メッセージを取り除くことができます。
[...]
"description": "No description",
"repository": {
"private": true
},
[...]
パッケージを公開する
まず、パッケージを設定したことを確認します( パッケージ設定の設定を参照)。次に、npmjsにログインする必要があります。
すでにnpmユーザーがいる場合
npm login
ユーザーがいない場合
npm adduser
ユーザーが現在のクライアントに登録されていることを確認するには
npm config ls
その後、パッケージを公開する準備ができたら、
npm publish
そして、あなたは完了です。
新しいバージョンを公開する必要がある場合は、 基本的な意味のバージョニングに記載されているように、パッケージのバージョンを更新するようにしてください。そうしないと、 npm
はパッケージを公開することはできません。
{
name: "package-name",
version: "1.0.4"
}
スクリプトの実行
package.json
にスクリプトを定義することができます。たとえば、次のようになります。
{
"name": "your-package",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {},
"scripts": {
"echo": "echo hello!"
}
}
echo
スクリプトを実行するには、コマンドラインからnpm run echo
をnpm run echo
ます。以下のような任意のスクリプト、 echo
上記は、で実行されなければならnpm run <script name>
。 npmには、パッケージのライフサイクルの特定の段階( preinstall
)で実行される数多くの公式スクリプトもあります。 npmがスクリプトフィールドをどのように扱うかの全体像については、 ここを参照してください。
npmスクリプトは、サーバの起動、プロジェクトの構築、テストの実行などの目的で最も頻繁に使用されます。もっと現実的な例があります:
"scripts": {
"test": "mocha tests",
"start": "pm2 start index.js"
}
scripts
エントリでは、 mocha
ようなコマンドラインプログラムは、グローバルにまたはローカルにインストールされたときに動作します。コマンドラインエントリがシステムPATHに存在しない場合、npmはローカルにインストールされたパッケージもチェックします。
スクリプトが非常に長くなると、次のように部分に分割することができます。
"scripts": {
"very-complex-command": "npm run chain-1 && npm run chain-2",
"chain-1": "webpack",
"chain-2": "node app.js"
}
無関係なパッケージの削除
無関係なパッケージ(依存関係リストにはインストールされていないパッケージ)を削除するには、次のコマンドを実行します。
npm prune
すべてのdev
パッケージを削除するには、-- --production
フラグを追加します。
npm prune --production
現在インストールされているパッケージの一覧表示
現在インストールされているパッケージのリスト(ツリービュー)を生成するには、
npm list
ls 、 la 、 llはlistコマンドのエイリアスです。 laとllコマンドは、説明とリポジトリのような拡張情報を表示します。
オプション
応答形式は、オプションを渡すことで変更できます。
npm list --json
- json - 情報をjson形式で表示します。
- long - 拡張情報を表示します。
- parseable - ツリーの代わりに解析可能なリストを表示する
- global - グローバルにインストールされたパッケージを表示します。
- 深度 - 依存ツリーの最大表示深度
- dev / development - devDependenciesを表示します。
- prod / production - 依存関係を表示します。
必要に応じて、パッケージのホームページに移動することもできます。
npm home <package name>
npmとパッケージの更新
npm自体はNode.jsモジュールなので、それ自体を使用して更新することができます。
OSがWindowsの場合、管理者としてコマンドプロンプトを実行する必要があります
npm install -g npm@latest
更新されたバージョンを確認するには、次の操作を行います。
npm outdated
特定のパッケージを更新するには:
npm update <package name>
これにより、package.jsonの制限に従ってパッケージが最新のバージョンに更新されます
package.jsonで更新されたバージョンをロックしたい場合:
npm update <package name> --save
モジュールを特定のバージョンにロックする
デフォルトでは、npmは各依存関係のセマンティックバージョンに従ってモジュールの最新の利用可能なバージョンをインストールします。これは、モジュール作成者がセマを遵守しておらず、例えばモジュール更新の変更を破棄した場合に問題になる可能性があります。
各依存関係のバージョン(およびその依存関係のバージョンなど)をnode_modules
フォルダにローカルにインストールされた特定のバージョンにロックするには、
npm shrinkwrap
これにより、依存関係の特定のバージョンを一覧表示するpackage.json
横にnpm-shrinkwrap.json
作成されます。
グローバルにインストールされたパッケージのセットアップ
npm install -g
を使用して、「グローバルに」パッケージをインストールnpm install -g
ことができます。これは通常、実行するパスに追加できる実行可能ファイルをインストールするために実行されます。例えば:
npm install -g gulp-cli
パスを更新すると、 gulp
直接呼び出すことができます。
多くのOSでは、 npm install -g
は、ユーザが/usr/bin
などに書き込めないディレクトリに書き込もうとします。あなたは使用しないでくださいsudo npm install
使って任意のスクリプトを実行しているの潜在的なセキュリティ上のリスクがあるので、この場合にsudo
とrootユーザーは、あなたが将来のインストールがより困難にこれに書き込むことはできませんあなたの家のディレクトリを作成することがあります。
npm
は、設定ファイル~/.npmrc
を使ってグローバルモジュールをどこにインストールするかを指示できます。これはprefix
と呼ばれ、 npm prefix
表示できます。
prefix=~/.npm-global-modules
これは、 npm install -g
を実行npm install -g
たびに接頭辞を使用します。 npm install --prefix ~/.npm-global-modules
を使用して、インストール時に接頭辞を設定することもできます。接頭辞が設定と同じ場合は、 -g
を使用する必要はありません。
グローバルにインストールされたモジュールを使用するには、あなたのパス上にある必要があります:
export PATH=$PATH:~/.npm-global-modules/bin
npm install -g gulp-cli
実行すると、 gulp
を使用できるようになります。
注意: npm install
( -g
なし)、接頭辞はpackage.json
のディレクトリ、または階層に見つからない場合はカレントディレクトリになります。また、実行可能ファイルを持つnode_modules/.bin
ディレクトリも作成されます。プロジェクトに固有の実行可能ファイルを使用する場合は、 npm install -g
を使用する必要はありません。 node_modules/.bin
あるものを使用できます。
より速いデバッグと開発のためのプロジェクトのリンク
プロジェクトの依存関係を構築することは時には面倒な作業です。 NPMにパッケージ・バージョンを公開し、依存関係をインストールして変更をテストする代わりに、 npm link
使用してnpm link
。 npm link
はシンボリックnpm link
作成し、最新のコードをローカル環境でテストすることができます。これにより、公開されたバージョンを作成する前に最新のコードを実行できるようにすることで、グローバルツールとプロジェクトの依存関係を簡単にテストできます。
ヘルプテキスト
NAME
npm-link - Symlink a package folder
SYNOPSIS
npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]
alias: npm ln
プロジェクトの依存関係をリンクする手順
依存関係リンクを作成するときは、パッケージ名が親プロジェクトで参照されるものであることに注意してください。
- CDを依存ディレクトリ(例:
cd ../my-dep
) -
npm link
- 依存関係を使用するプロジェクトにCDを挿入する
-
npm link my-dep
またはnamespacednpm link @namespace/my-dep
グローバルツールをリンクする手順
- CDをプロジェクトディレクトリに
cd eslint-watch
(例:cd eslint-watch
) -
npm link
- ツールを使用する
-
esw --quiet
発生する可能性のある問題
依存関係ツールまたはグローバルツールが既にインストールされている場合、プロジェクトをリンクすると問題が発生することがあります。 npm uninstall (-g) <pkg>
を実行してからnpm link
実行すると、通常発生する問題が解決されます。