サーチ…


備考

package.jsonを次のように作成することができます。

npm init

ライセンス識別子など、プロジェクトに関する基本的な事実について質問します。

基本プロジェクト定義

{
    "name": "my-project",
    "version": "0.0.1",
    "description": "This is a project.",
    "author": "Someone <[email protected]>",
    "contributors": [{
        "name": "Someone Else",
        "email": "[email protected]"
    }],
    "keywords": ["improves", "searching"]
}
フィールド説明
パッケージをインストールするために必要なフィールド。小文字、スペースなしの単一単語が必要です。 (ダッシュとアンダースコアは許可されています)
バージョン セマンティックバージョニングを使用してパッケージバージョンに必要なフィールド。
説明プロジェクトの簡単な説明
著者パッケージの作成者を指定する
寄稿者コントリビュータごとに1つのオブジェクトの配列
キーワード文字列の配列、これは人々があなたのパッケージを見つけるのに役立ちます

依存関係

"dependencies":{"module-name": "0.1.0"}

  • 正確0.1.0はモジュールの特定のバージョンをインストールします。
  • 最新のマイナーバージョン^0.1.0は最新のマイナーバージョン(たとえば0.2.0 )をインストールしますが、上位メジャーバージョン( 1.0.0モジュールはインストールしません
  • 最新のパッチ0.1.xまたは~0.1.0例えば、利用できる最新のパッチバージョンをインストールします0.1.4 、しかし、より高いメジャーまたはマイナーバージョンで例えばモジュールをインストールしません0.2.0または1.0.0
  • ワイルドカード*はモジュールの最新バージョンをインストールします。
  • gitリポジトリ :以下は、 gitリポジトリのマスターブランチからtarballをインストールします。 #sha#tagまたは#branchも提供できます:
    • GitHubuser/projectまたはuser/project#v1.0.0
    • urlgit://gitlab.com/user/project.gitまたはgit://gitlab.com/user/project.git#develop
  • ローカルパスfile:../lib/project

パッケージをpackage.jsonに追加したら、ターミナルのプロジェクトディレクトリにあるnpm installコマンドを使用します。

devDependencies

"devDependencies": {
    "module-name": "0.1.0"
}

スタイリングプロキシのテストのように、開発のためだけに必要な依存関係については、ext。プロダクションモードで "npm install"を実行している場合、これらのdev-dependenciesはインストールされません。

スクリプト

実行可能なスクリプト、または別のスクリプトの前後にトリガーされるスクリプトを定義できます。

{
  "scripts": {
    "pretest": "scripts/pretest.js",
    "test": "scripts/test.js",
    "posttest": "scripts/posttest.js"
  }
}

この場合、次のコマンドのいずれかを実行してスクリプトを実行できます。

$ npm run-script test
$ npm run test
$ npm test
$ npm t

あらかじめ定義されたスクリプト

スクリプト名説明
事前公開パッケージが公開される前に実行します。
公開し、後で公開するパッケージが公開された後に実行します。
プリインストールパッケージがインストールされる前に実行してください。
インストール、ポストインストールパッケージのインストール後に実行します。
プリインストール、アンインストールパッケージがアンインストールされる前に実行します。
ポストアンインストールパッケージがアンインストールされた後に実行します。
前バージョン、バージョンパッケージ版をバンプする前に実行してください。
倒産パッケージ版をバンプしてから実行してください。
テスト前、テスト後、テスト後 npm testコマンドで実行する
プレストップ、停止、ポストストップ npm stopコマンドで実行する
プレスタート、開始、ポストスタート npm startコマンドで実行する
プレスタート、再起動、ポストレタート npm restartコマンドで実行する

ユーザー定義のスクリプト

あらかじめ定義されたスクリプトと同じように独自のスクリプトを定義することもできます。

{
  "scripts": {
    "preci": "scripts/preci.js",
    "ci": "scripts/ci.js",
    "postci": "scripts/postci.js"
  }
}

この場合、次のコマンドのいずれかを実行してスクリプトを実行できます。

$ npm run-script ci
$ npm run ci

ユーザー定義スクリプトは、上記の例に示すように、 プレスクリプトとポストスクリプトもサポートしています。

拡張プロジェクト定義

追加の属性のいくつかは、 repositorybugsまたはhomepageようなnpmウェブサイトによって解析され、このパッケージのインフォボックスに表示されます

{
  "main": "server.js",  
  "repository" :  {
    "type": "git",
    "url": "git+https://github.com/<accountname>/<repositoryname>.git"
  },
  "bugs": {
    "url": "https://github.com/<accountname>/<repositoryname>/issues"
  },
  "homepage": "https://github.com/<accountname>/<repositoryname>#readme",
  "files": [
    "server.js", // source files
    "README.md", // additional files
    "lib" // folder with all included files
  ]
}
フィールド説明
メインこのパッケージのエントリースクリプト。このスクリプトは、ユーザーがパッケージを要求したときに戻されます。
リポジトリ公開リポジトリの場所とタイプ
バグこのパッケージのバグトラッカー(githubなど)
ホームページこのパッケージまたは一般プロジェクトのホームページ
ファイルユーザーがnpm install <packagename>したときにダウンロードされるファイルとフォルダのリストnpm install <packagename>

package.jsonの探索

通常はプロジェクトルートに存在するpackage.jsonファイルには、アプリケーションまたはモジュールに関するメタデータと、 npm install実行時にnpmからインストールする依存関係のリストが含まれています。

コマンドプロンプトでpackage.jsonを初期化するには、 npm initと入力します。

デフォルト値を使用してpackage.jsonを作成するには、次のようにします。

npm init --yes
# or
npm init -y

パッケージをインストールしてpackage.json保存するには:

npm install {package name} --save

簡略表記を使用することもできます。

 npm i -S {package name}

NPMのエイリアス-S--save-D--save-devに指定すると、それぞれプロダクションまたは開発の依存関係を保存できます。

パッケージは依存関係に表示されます。あなたが使用している場合--save-dev代わりの--save 、パッケージには、あなたのdevDependenciesに表示されます。

package.json重要なプロパティ:

{
  "name": "module-name",
  "version": "10.3.1",
  "description": "An example module to illustrate the usage of a package.json",
  "author": "Your Name <[email protected]>",
  "contributors": [{
    "name": "Foo Bar",
    "email": "[email protected]"
  }],
  "bin": {
    "module-name": "./bin/module-name"
  },
  "scripts": {
    "test": "vows --spec --isolate",
    "start": "node index.js",
    "predeploy": "echo About to deploy",
    "postdeploy": "echo Deployed",
    "prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
  },
  "main": "lib/foo.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/username/repo"
  },
  "bugs": {
    "url": "https://github.com/username/issues"
  },
  "keywords": [
    "example"
  ],
  "dependencies": {
    "express": "4.2.x"
  },
  "devDependencies": {
    "assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
  },
  "peerDependencies": {
    "moment": ">2.0.0"
  },
  "preferGlobal": true,
  "private": true,
  "publishConfig": {
    "registry": "https://your-private-hosted-npm.registry.domain.com"
  },
  "subdomain": "foobar",
  "analyze": true,
  "license": "MIT",
  "files": [
    "lib/foo.js"
  ]
}

重要なプロパティに関する情報

name

パッケージの一意の名前。小文字にする必要があります。このプロパティは必須であり、パッケージはパッケージがなければインストールされません。

  1. 名前は214文字以下でなければなりません。
  2. 名前はドットまたはアンダースコアで始めることはできません。
  3. 新しいパッケージには名前に大文字を使用できません。
version

パッケージのバージョンはSemantic Versioning (semver)で指定します。これは、バージョン番号がMAJOR.MINOR.PATCHと書かれており、

  1. 互換性のないAPI変更を行うとMAJORバージョン
  2. 下位互換性のある方法で機能を追加すると、MINORバージョン
  3. 下位互換性のあるバグ修正を行う際のPATCHバージョン
description

プロジェクトの説明。短く簡潔にしてください。

author

このパッケージの著者。

bin

パッケージからバイナリスクリプトを公開するために使用されるオブジェクト。オブジェクトは、キーがバイナリスクリプトの名前であり、値がスクリプトへの相対パスであることを前提としています。

このプロパティは、CLI(コマンドラインインターフェイス)を含むパッケージで使用されます。

script

追加のnpmコマンドを公開するオブジェクト。オブジェクトは、キーがnpmコマンドであり、値がスクリプトパスであることを前提としています。これらのスクリプトは、 npm run {command name}またはnpm run-script {command name}実行すると実行されます。

コマンドラインインターフェイスを含み、ローカルにインストールされたパッケージは、相対パスなしで呼び出すことができます。したがって、. ./node-modules/.bin/mocha mochaを呼び出す代わりに、 mochaを直接呼び出すことができます。

main

パッケージのメインエントリポイント。ノードでrequire('{module name}')を呼び出すrequire('{module name}') 、これは実際に必要なファイルになります。

メインファイルを要求しても副作用が発生しないことを強くお勧めします。たとえば、メインファイルを要求すると、HTTPサーバーを起動したり、データベースに接続したりしないでください。代わりに、メインスクリプトにexports.init = function () {...}ようなものを作成する必要があります。

keywords

あなたのパッケージを記述するキーワードの配列。これらは人々があなたのパッケージを見つけるのを助けるでしょう。

devDependencies

これらは、モジュールの開発とテストのみを目的とした依存関係です。依存関係は、 NODE_ENV=production環境変数が設定されていない限り、自動的にインストールされます。このような場合は、 npm install --devを使用してこれらのパッケージをnpm install --devことができますnpm install --dev

peerDependencies

このモジュールを使用している場合、peerDependenciesには、このモジュールの横にインストールする必要があるモジュールがリストされます。例えば、 moment-timezoneは、それが直接require("moment")しない場合でもrequire("moment")moment-timezoneプラグインなので、 momentにインストールするrequire("moment")ます。

preferGlobal

このページがnpm install -g {module-name}を使用してグローバルにインストールされることを好むことを示すプロパティ。このプロパティは、CLI(コマンドラインインターフェイス)を含むパッケージで使用されます。

それ以外の場合は、このプロパティを使用しないでください。

publishConfig

publishConfigは、モジュールを公開するために使用される構成値を持つオブジェクトです。設定された設定値は、デフォルトのnpm設定を上書きします。

publishConfigの最も一般的な使い方は、プライベートnpmレジストリにパッケージを公開することです。そのため、npmの利点がありますが、プライベートパッケージの利点もあります。これは単純にプライベートnpmのURLをレジストリキーの値として設定するだけです。

files

これは、公開パッケージに含めるすべてのファイルの配列です。ファイルパスまたはフォルダパスのいずれかを使用できます。フォルダパスのすべての内容が含まれます。これにより、配布する正しいファイルのみを含めることによって、パッケージの合計サイズが縮小されます。このフィールドは.npmignoreルールファイルと連携して.npmignoreます。

ソース



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