序章

Node.jsは、サーバーサイドプログラミングで人気のあるJavascriptプラットフォームであり、Webアプリをすばやく構築して実行できます。

このガイドでは、Node.jsパッケージ管理システムであるnpmの使用方法について説明します。 過去のガイドでは、Ubuntu14.04サーバーにNode.jsをインストールする方法について説明しました。 また、パッケージを検索して取得することでnpmをパッケージコンシューマーとして使用する方法についても説明しました。

ここでは、構成設定の変更方法、パッケージの作成と公開方法、およびnpmパッケージリポジトリーとの対話方法について説明します。 すぐに飛び込みましょう。

構成設定の管理

npmの動作を制御するために、ツールの設定を調整できます。 これを行うためにnpmに組み込まれている方法はかなりあります。

現在の構成設定の一覧表示

まず、現在の設定を見てみましょう。 これを行うには、次のように入力します。

npm config ls

; cli configs
registry = "https://registry.npmjs.org/"
user-agent = "npm/1.4.9 node/v0.11.13 linux x64"

; node bin location = /home/demouser/.nvm/v0.11.13/bin/node
; cwd = /home/demouser/projects/test_package
; HOME = /home/demouser
; 'npm config ls -l' to show all defaults.

この設定のリストは、現在の動作環境を含むさまざまな場所から取得されます。 コマンドの実行時にビルドされます。 -gフラグを渡すことで、これをテストできます。 「グローバル」オプションが設定されていることが突然表示されます。

 npm config ls -g
  ;  cli configs global = true Registry =“  https://registry.npmjs.org/  ” user-agent =“ npm / 1.4.9 node / v0.11.13 linux x64”。 . . 

現在、まだ作成されていない構成ファイルがないため、npmは構成ファイルから情報を取得していません。 環境(現在のディレクトリなど)から情報を収集し、アプリケーションのデフォルトを使用するだけです。

ただし、このコマンドのデフォルトのほとんどは表示されません。 より詳細な情報を取得するには、-lフラグを渡す必要があります。

npm config ls -l

; cli configs
long = true
registry = "https://registry.npmjs.org/"
user-agent = "npm/1.4.9 node/v0.11.13 linux x64"

; default values
always-auth = false
bin-links = true
browser = null
ca = null
. . .

特定の値の取得と設定

ご覧のとおり、多くのキーと値のペアの情報があります。 これは、npm内の構成値を操作する方法です。 たとえば、「editor」キーの現在の値を確認するには、次のように入力します。

npm config get editor

vi

この値を変更したい場合は、次のように入力することで簡単に変更できます。

npm config set editor vim

これは2つのことを行います。 デフォルト値(vi)を新しい値(vim)で上書きし、最初のカスタム値であるため、また構成ファイルを作成します。

設定ファイルはどこに書かれていますか? npmに聞いてみませんか:

npm config get userconfig

/home/demouser/.npmrc

config set -g構文を使用して値を設定すると、globalconfigファイルに書き込まれます。 次のように入力すると、これが保存されている場所を確認できます。

npm config get globalconfig

/home/demouser/.nvm/v0.11.13/etc/npmrc

ファイルの場所は、Node.jsのインストールに使用した方法によって異なります。 繰り返しますが、このファイルは、グローバルレベルのデフォルト値から外れるまで存在しません。

が存在するファイルの場合、エディターで編集する場合は、次のように入力します。

npm config edit

これは、ファイルがまだ作成されていない場合は機能しません(手動で、またはnpm内にデフォルト以外の値を設定することによって)。

次の構文を使用して、特定のコマンドを呼び出すときに、さまざまな構成オプションを設定することもできます。

npmサブコマンド-キー

値が取得される他の領域は、プロジェクト自体のpackage.jsonファイルと環境変数です。

npmでパッケージを作成する

npmを標準のパッケージマネージャーとして使用して、アプリケーションに必要な依存関係とパッケージを取得および管理する方法について少し学びました。 ただし、npmを使用して、アプリケーションまたはライブラリをパッケージ化して共有することもできます。

npmが最初に役立つことの1つは、プロジェクトのpackage.jsonファイルを生成することです。 始める前に、このヘルプページを見て、質問されるフィールドに精通している必要があります。

npm help json

アプリケーションディレクトリに移動したら、次の作業を開始できます。

cd ~/projects/test_package
npm init

これにより、パッケージファイルを作成するために必要な情報の入力を求められます。 デフォルト値を設定するには、環境からいくつかの手がかりが必要です。 セッションは次のようになります。

name: (test_package) 
version: (0.0.0) 0.0.1
description: A test package
entry point: (index.js) index.js
test command: echo "test"
git repository: http://fake.git.repo.com
keywords: test
author: me
license: (ISC) GLP
About to write to /home/demouser/projects/test_package/package.json:

{
  "name": "test_package",
  "version": "0.0.1",
  "description": "A test package",
  "main": "index.js",
  "dependencies": {
    "express": "^4.2.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"test\""
  },
  "keywords": [
    "test"
  ],
  "author": "me",
  "license": "GLP"
}

Is this ok? (yes) yes

package.jsonファイルを生成した後で追加の依存関係をインストールする必要がある場合は、--saveフラグを付けてインストールする必要があります。これにより、package.jsonファイルの依存関係リストが更新されます。

パッケージに特定のバージョンが必要な場合は、shrinkwrapサブコマンドを使用できます。 通常、パッケージファイルは、現在のパッケージを、ビルドに必要な最小の実行可能なバージョンとして設定します。 シュリンクラップファイルでは、これらのバージョンは特定のものであり、ロックダウンされています。

このファイルは次のコマンドで作成できます。

npm shrinkwrap

これにより、npm-shrinkwrap.jsonというファイルが生成され、各依存関係の非常に詳細なパッケージ情報が再帰的に含まれます。 アプリケーション環境がデリケートな場合、これは不可欠なツールです。

npmを介したnpmWebサイトとの対話

npmプロジェクトは、npmjs.orgにパッケージのWebサイトを維持しています。 npmコマンドラインツールを使用して、実際にこのサイトを操作できます。 パッケージを検索する方法についてはすでに説明しましたが、さらに多くの機能もあります。

まず、まだアカウントにサインアップしていない場合は、からnpmインターフェイス内で次のように入力してサインアップできます。

npm adduser

ユーザー名、パスワード、および電子メールアドレスを選択するように求められます。 これらは、Webブラウザから登録する場合と同じようにサイトに投稿されます。

構成を確認すると、新しいアカウントの詳細が表示されます。

npm config ls

. . .
; userconfig /home/demouser/.npmrc
editor = "vim"
email = "[email protected]"
username = "demouser"
. . .

パッケージを公開する

より大きなNode.jsコミュニティと共有したいパッケージを作成したら、npmサイトから始めるのが最適です。

幸い、npmにはいくつかのヘルパー関数が付属しています。

パッケージのディレクトリにいる場合は、次のように入力するだけです。

npm publish

これにより、パッケージがnpmWebサイトにプッシュされます。 この操作が成功するかどうかは、パッケージが一意の名前とバージョン番号を持っているかどうかに依存します。 そこに行ってパッケージを検索すると、他のNode.jsパッケージと同じようにリストされているはずです。

アップロードにタグを付ける

tagサブコマンドを使用して、パッケージの特定のリリースにタグを付けることができます。 これらは、インストールおよび依存関係の指定時にバージョン番号の代わりに使用できます。

デフォルトでは、npmには、公開するパッケージに「最新」というラベルの付いたタグが含まれます。 これは、最新のプッシュを示しています。 次のように入力すると、これを確認できます。

npm config get tag

latest

これは、次のように入力することで、最新バージョンを具体的にリクエストできることを意味します。

npm install package@latest

パッケージ/バージョンの組み合わせの1つにタグを追加する場合は、次のように入力できます。

npmタグパッケージ@バージョンtag_name

これにより、バージョン番号の代わりに「tag_name」でタグ付けしたバージョンを参照できるようになります。

パッケージの所有権の変更

デフォルトでは、パッケージを公開すると、パッケージの所有権が付与されます。

次のように入力して、これを確認できます。

 npm owner ls package_name
 デモユーザー  @ドメイン