npmを使用してLinuxサーバーでNode.jsパッケージをビルドおよび公開する方法
序章
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
デモユーザー@ドメイン