package.json
ファイルを作成することです。この記事では package.json ファイルについて説明しますので、お役に立てれば幸いです。 package.json を理解する
各プロジェクト (npm からダウンロードしたパッケージ、または他の nodejs プロジェクト) のルート ディレクトリの下には、通常、プロジェクトに必要なさまざまなモジュールとプロジェクト構成情報を定義する package.json ファイルがあります (名前、バージョン、ライセンス、プロジェクトの開始方法、スクリプトの実行方法などのメタデータ)。 npm install
コマンドは、この構成ファイルに基づいて必要なモジュールを自動的にダウンロードします。
package.json
ファイルは JSON オブジェクトであり、オブジェクトの各メンバーは現在のプロジェクトの設定です。たとえば、 name
はプロジェクト名、 version
はバージョンです (「メジャー バージョン.マイナー バージョン.マイナー バージョン」の形式に従います)。また、開発、テスト、オンライン バージョンなど、プロジェクトのライフ サイクルにおいて複数の役割を果たします。
package.json は、
package.json の作成方法
1. コマンド ライン ツール クライアント CLI を使用します。
npm init
これにより、コマンド ライン アンケートが開始され、コマンドを開始したディレクトリにpackage.json
が作成されます。
マスタリー コースへのフロントエンド (vue) エントリ: ラーニングに入る
2. デフォルト値の作成 デフォルト
値package.json
取得するには、 --yes
または-y
フラグを指定してnpm init
実行してください:
npm init -y
このメソッドはpackage.json
使用します。ディレクトリから抽出さpackage.json
た情報によってデフォルト値が生成され、質問に答えるステップは省略されます。
3.
新しい package.json ファイルをプロジェクトのルート ディレクトリに手動で直接作成し、関連するコンテンツを入力します。 詳細については、以下の package.json に関する注意事項を参照してください。
package.json ファイルの共通フィールドの詳細な説明
1. Name
は必須フィールドで、現在のモジュール/パッケージの名前です。長さは 214 文字以下である必要があります。「.」で始めることはできません。 ) または "_" (アンダースコア) を使用し、大文字を含めることはできません。
この名前はパラメータとして require() に渡される可能性があるため、短くても意味のある名前にする必要があります。
2. [バージョン]
は必須フィールドで、現在のパッケージのバージョン番号です。初めて作成したときのデフォルトは
1.0.0
です。
バージョンは、npm が依存するノード semver モジュールによって解決可能である必要があります。現在のプロジェクトのバージョン反復の進行状況を定義します。 (「メジャー バージョン. マイナー バージョン. マイナー バージョン」の形式に従ってください)
おそらく多くの友人は現在、バージョン番号に注意を払っていないか、気にせず、製品のバージョン番号、または git を使用することを好みます。ハッシュコード方式。
3. 説明の
オプションフィールドは文字列である必要があります。現在のパッケージの説明情報は文字列です。これは、npm 検索を使用するときにパッケージを見つけるのに役立ちます。
package.json にdescription
情報がない場合、npm はプロジェクト内の README.md の 1 行目を記述情報として使用します。この説明情報は他の人がプロジェクトを検索するのに役立ちますので、 description
情報をしっかりと書くことをお勧めします。
4. メインの
オプション フィールドでは、プロジェクトをロードするためのエントリ ファイルを指定します。
このフィールドのデフォルト値は、モジュールのルート ディレクトリにあるindex.js
です。
5. スクリプトの
scripts
フィールドは、スクリプトコマンドで構成されるハッシュオブジェクトで、パッケージのさまざまなライフサイクルで実行されます。キーはライフサイクル イベントで、値は実行されるコマンドです。 スクリプト コマンドを実行するための npm コマンド ラインの省略形を指定します。たとえば、start は、npm run start の実行時に実行されるコマンドを指定します。スクリプトを実行するコマンドをカスタマイズできます。
参考: http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html
スクリプト設定実行スクリプト
1) echo xxx コマンドを実行して
なぜ実行できるのでしょうか。
npm runを実行すると、新しいシェルが自動的に作成され、そのシェル内で指定したスクリプトコマンドが実行されます。したがって、コマンドがシェル (通常は Bash) で実行できる限り、npm スクリプトで記述することができます。また、現在のディレクトリにあるnode_modules/.binを現在のシステムのパスにコピーします(これは単なる一時的なコピーです。実行が完了すると、PATH変数は元の状態に戻ります)。したがって、node_modules内のすべてのスクリプトがコピーされます。現在のディレクトリの /.bin サブディレクトリ。すべては、パスを追加せずにスクリプト名を使用して直接呼び出すことができます。
たとえば、
node を使用して、node.js サービスを実行する場合、 node + 文件
、 node server.js
を使用できます。もちろん、webpack を使用して、フロントエンド ファイルwebpack-dev-server
パッケージ化することもできます。 webpack-dev-server をインストールする必要があります。
「スクリプト」: { "ビルド": "webpack --mode=開発", "dev": "webpack-dev-server --mode=development --contentBase=./dist", "サーバー":"ノードapp.js"
コマンド ライン ツールにnpm run server
と入力すると、ノード app.js が呼び出され、ノードの実行を支援します
。
短い形式:
npm start は npm run start です。 npm stop は、npm run stop の略です。 npm test は、npm run test の略です。 npm restart は、npm run stop && npm run restart && npm run start の略です。
よく使用されるスクリプト----- オンライン収集転送
// ディレクトリの削除"クリーン": "リムラフ dist/*", // HTTP サービス「serve」をローカルに構築します: "http-server -p 9090 dist/", // ブラウザを開きます "open:dev": "opener http://localhost:9090", //「livereload」をリアルタイムで更新: "live-reload --port 9091 dist/", // HTML ファイルをビルドします "build:html": "jadeindex.jade > dist/index.html", // CSS ファイルが変更されている限り、ビルドを再実行します "watch:css": "watch 'npm run build:css'assets/styles/", // HTML ファイルが変更されている限り、ビルドを再実行します "watch:html": "watch 'npm run build:html'assets/html", // Amazon S3 にデプロイする "deploy:prod": "s3-cli sync ./dist/ s3://example-com/prod-site/", //ファビコンを構築する "build:favicon": "ノードスクリプト/favicon.js", "start": "cross-env NODE_ENV=production Node server/index.js"、
6. dependency および devDependency は
オプションのフィールドです。
dependencies
フィールドはプロジェクトが依存するモジュールを指定し、devDependencies
プロジェクト開発に必要なモジュールを指定します。
値はオブジェクトを指します。このオブジェクトの各メンバーは、モジュール名と、依存するモジュールとそのバージョン範囲を示す、対応するバージョン要件で構成されます。
デフォルトでは作成される package.json はありませんnpm install
モジュールをインストールするときに生成されます。
npm インストールエクスプレス npm install Express --save npm install Express --save-dev
上記のコードは、
dependencies
関係に書き込むことを意味します。devDependencies
--save-dev
dependencies
属性--save
モジュールを書き込むことを意味します。devDependency7.
8.パッケージの公開時に同時にパッケージ化される他の依存関係のオプションのフィールド。
プロジェクトまたはモジュールが別のモジュールに同時に依存しているが、依存しているバージョンが異なる場合、
peerDependency
オプション フィールド、互換性依存関係。たとえば、プロジェクトはモジュール A とモジュール B のバージョン 1.0 に依存し、モジュール A 自体はモジュール B のバージョン 2.0 に依存するとします。
{ "名前": "約束通りチャイ", "ピア依存関係": { "チャイ": "1.x" }
上記のコードは、 chai-as-promised
モジュールをインストールするときに、メイン プログラムのchai
一緒にインストールする必要があり、 chai
バージョンが1.x
である必要があることを指定しています
。
プロジェクトで指定された依存関係がchai
のバージョン 2.0 である場合、エラーが報告されます。
9. bin
オプションフィールド bin フィールドは、各内部コマンドに対応する実行可能ファイルの場所を指定するために使用されます。
プロジェクトのルート ディレクトリに /bin/www ファイルを作成します。
#!/usr/bin/env ノードpackage.json で
「bin」
を構成します
。"lee-cli":"./bin/www"npm リンクは
、
npm link
内の bin 属性の値パスをグローバル リンクに追加し、ショートカット接続を作成し、
コマンド ラインでlee-cli
実行して bin/www ファイルを実行します。プロセスは次のとおりです。
上記の例では、 www はシンボリック リンクnode_modules/.bin/www
を作成します。 node_modules/.bin/
ディレクトリは実行時にシステムの PATH 変数に追加されるため、npm の実行時にパスなしでコマンドを通じてこれらのスクリプトを直接呼び出すことができます。
10. config
config フィールドは、環境変数に値を出力するために使用されます
。 "名前" : "パッケージ", "構成" : { "ポート" : "8080" }, "スクリプト" : { "開始" : "ノードサーバー.js" }これを変更したい場合は
、
npm config set package:port 8011 を
使用できます
。エンジンの
オプションのフィールドでは、特定のバージョンのノードやブラウザなど、モジュールが実行されるプラットフォームのバージョンを指定することもできます。該当する
npm
バージョン。
「エンジン」: { 「ノード」: ">=0.10.3 <0.12" 12.
ライセンス
のオプションのフィールド。package.json に記述されているコードに適用されるライセンスの定義を示します。プロトコルが異なれば、制限も異なります。モジュールを使用するためにどのような権限が必要か、またモジュールの使用にはどのような制限があるかをユーザーに知らせます。
ライセンスを選択するには、choosealicense.com/ を参照してください。
例: MIT: 最大権限、ダウンロード後に他の人がコードを変更できる、デフォルトのインストール値。
13.
オプションのフィールド、プロジェクト開発者の作成者。
14. プライベートの
オプションフィールド、ブール値、プライベートかどうか。 true に設定すると、npm は公開を拒否します。
これは、プライベートパッケージが部外者に公開されるのを防ぐ方法です。特定のレジストリ (内部レジストリなど) にのみ公開されるようにパッケージをラップする場合は、以下の pubConfig ディクショナリの説明を使用して、公開時にレジストリ構成パラメータをオーバーライドできます。
15. キーワードの
オプション フィールドであるプロジェクト キーワードは文字列配列です。これは、npm 検索を使用するときにパッケージを見つけるのに役立ちます。
16. os
オプション フィールドは、モジュールを実行できるオペレーティング システムを指定します。
17. style
style は、ブラウザで使用するときのスタイル ファイルの場所を指定します。
18.
リポジトリ パッケージ コードが保存される場所の種類は、git または svn です。git は Github にあります。
19. ホームページの
オプション フィールドには、http:// などのプロトコル プレフィックスを含む URL はありません。
バージョンの問題:
バージョン: "1.0.0"
1.0.0:
最初の数字の変更は、古いコードとの互換性がないこと、大規模なアップデート、新しいバージョンのリリースを意味します。2
番目の数字は、いくつかの機能が追加され、下位
互換性を意味します。桁
は、いくつかの機能が追加されたことを意味します。下位互換性ビットは、
小さなパッチ、バグ修正を意味します。
プロジェクトを公開するときに、npm + git を使用して
npm version patch
(パッチ パッチ) を使用します。これにより、バージョンの 3 桁目が変更されます。 ; git tag
使用して実行すると、自動的に git になりますnpm version minor
npm version major
;npm バージョン [<新しいバージョン> プレメジャー | プレリリース | Major: メジャー バージョン番号、minor: マイナー バージョン番号、patch: パッチ番号 premajor: 暫定メジャー バージョン prepatch: 暫定マイナー バージョン prerelease: プレリリース バージョン
ps: 注: エラーが報告された場合: Git 作業ディレクトリがクリーンではありません。 git status
クリーンにする必要があります。
git add 。 git commit -m "package.json の詳細説明"
npm versin monir -m"增加版本号"
git Push -u Origin master
ルールをどのように策定するか?
ユーザーとして、このパッケージに対してどれだけの更新を受け入れることができるかを package.json ファイルで指定できます (現在バージョン 1.2.4 に依存していると仮定します):
パッチ バージョンへの更新のみを受け入れるつもりの場合 (つまり、最後の桁が変更される)、次のように書くことができます:
1.2 1.2.x ~1.2.4
マイナー バージョンの更新 (2 番目の位置の変更) を受け入れる場合は、次のように記述できます:
1 1.x ^1.2.4
メジャー バージョンの更新を受け入れることができる場合 (当然、マイナー バージョンとパッチ バージョンの変更を受け入れることができます)、次のように書くことができます:
*x
要約すると、バージョンの変更には 3 つのタイプがあり、依存パッケージのどのタイプの更新が受け入れられますか? バージョン番号を前の桁まで正確に記入してください。
バージョンのサイクルと段階:
2.1.0-beta.1
。
2.1.0-beta.1
は一般的にこのようなユーザーによって使用されます。この種のものは内部およびテスターによってインストールされません。
の | 例 |
---|---|
~ | 1.2.3 |
メジャー | バージョン + マイナー バージョン + パッチ バージョン; ~1.2 メジャー バージョン + マイナー バージョン < 1.3 |
。 | メジャー バージョン; 1.0.0 <= バージョン < 2.0.0 |
シンボル | インスタンスの | バージョン範囲の | 説明 |
---|---|---|---|
1.0.0 | 1.0.0 | はバージョン 1.0.0 にロックされているため、このバージョンである必要があります。 | |
^ は、最新の大きいバージョンの依存関係パッケージに一致します | ^1.2.3、^0.2.3 | >=1.2.3 <2.0.0、>=0.2.3 <0.3.0 | は、最新バージョン 1.xx (それ以上) をインストールすることを意味します1.2 .3 (1.3.0 を含む) ですが、2.xx はインストールされません。つまり、インストール中にメジャー バージョン番号は変更されません。メジャー バージョン番号が 0 の場合、キャレットはチルダと同じように動作することに注意してください。これは、まだ開発段階にあるため、わずかなバージョン番号の変更でもプログラムの互換性が失われる可能性があります。 (メイン バージョン) |
~ 最新のマイナー バージョンの依存関係パッケージ | ~1.2.3 | >=1.2.3 <1.3.0 は | 、最新バージョンの 1.2.x (1.2.3 以上) をインストールすることを意味しますが、1.3.x はインストールしません。つまり、メジャー バージョン番号とマイナー バージョン番号はインストール中に変更されません。 |
>= | >=2.1.0 | >=2.1.0 | 2.1.0 以上 |
<= | <=2.0.0 | <=2.0.0 | 2.0.0 |
以下 最後 | 最新バージョンをインストールします | ||
* | >=0.0.0 | 任意のバージョン | |
- | 1.2.3 - 2.3.4 | >=1.2.3 <=2.3.4 |
Dependencies
のインストールとdependencies
のインストールを区別しますか?
devDependencies
開発に必要なモジュールであるため、いくつかの有名なサードパーティ ライブラリ、 webpack
、 rollUp
、 less
、 babel
など、開発プロセス中に必要に応じてインストールして開発効率を向上させることができます。 実稼働環境にインストールする必要はありません。
次のライブラリをdevDependencies
にインストールすることをお勧めします。
依存関係パッケージ (指定、更新、ローカル、使用、アンインストール)
1. ローカル依存関係パッケージをインストールします。
npm
install jquery
現在のディレクトリnode_modules
ディレクトリに を作成し、指定したパッケージをこのディレクトリにダウンロードします。
2. インストールのバージョンを指定するには、パッケージ名の後に@版本号
。
パッケージ名が package @
で始まる場合、それはスコープ付きパッケージです。
npm install [email protected] npm install jquery@">=1.1.0 <2.2.0" npm install jquery@latest
が更新されると、依存関係のバージョン番号も変更されます。
3. 依存パッケージ
npm update jqueryを更新します。
4. パッケージ
let jquery = require('jquery') を使用します。
<script src="/node_modules/jquery/dist/jquery.js">//これには注意が必要です。 path</script>
6 、依存パッケージをアンインストールします
npm uninstall jquery
セマンティック バージョニング (セマンティック バージョニング ルール)
https://docs.npmjs.com/about-semantic-versioning
https://github.com/npm/node-semver
パッケージ
npm init
name
package.json
注
npm init を使用する場合、いくつかの項目を入力するように求められます。これらの必須フィールドは、package.json コンテンツに必ず必要なフィールドです。version
でない場合、 install
実行できません。
xxx
その他の注意事項: