サーチ…


前書き

Node Package Manager(npm)は、以下の2つの主要機能を提供します。search.nodejs.orgで検索可能なnode.jsパッケージ/モジュールのオンラインリポジトリ。 Node.jsパッケージをインストールするコマンドラインユーティリティは、Node.jsパッケージのバージョン管理と依存関係管理を行います。

構文

パラメーター

パラメータ
アクセス 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>

usernamepasswordportフィールドはオプションです。これらを設定すると、 npm installnpm 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にある場合は、次の操作が必要です。

  1. パッチリリース: npm version patch => 1.2.4
  2. マイナーリリース: npm version minor => 1.3.0
  3. メジャーリリース: 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ファイルにその意図を伝えることができます:

  1. 必要に応じて、 privateプロパティをtrueに設定して、誤ったパブリッシュを防止します。
  2. 必要に応じて、 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 echonpm 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

lslalllistコマンドのエイリアスです。 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 linknpm linkはシンボリックnpm link作成し、最新のコードをローカル環境でテストすることができます。これにより、公開されたバージョンを作成する前に最新のコードを実行できるようにすることで、グローバルツールとプロジェクトの依存関係を簡単にテストできます。

ヘルプテキスト

NAME
       npm-link - Symlink a package folder

SYNOPSIS
         npm link (in package dir)
         npm link [<@scope>/]<pkg>[@<version>]

         alias: npm ln

プロジェクトの依存関係をリンクする手順

依存関係リンクを作成するときは、パッケージ名が親プロジェクトで参照されるものであることに注意してください。

  1. CDを依存ディレクトリ(例: cd ../my-dep
  2. npm link
  3. 依存関係を使用するプロジェクトにCDを挿入する
  4. npm link my-depまたはnamespaced npm link @namespace/my-dep

グローバルツールをリンクする手順

  1. CDをプロジェクトディレクトリにcd eslint-watch (例: cd eslint-watch
  2. npm link
  3. ツールを使用する
  4. esw --quiet

発生する可能性のある問題

依存関係ツールまたはグローバルツールが既にインストールされている場合、プロジェクトをリンクすると問題が発生することがあります。 npm uninstall (-g) <pkg>を実行してからnpm link実行すると、通常発生する問題が解決されます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow