記事ディレクトリ
1. パッケージの公開と更新について
問題があります - npm バージョン パッチには更新されたバージョンがありません!
初めてnpmで簡単なパッケージをリリースした.リリースに成功した後,プロジェクトを明確に記述するために新しいreadme.mdファイルを追加した.更新コマンドを実行した後,バージョン番号が出力されたが,更新はなかったnpm version patch
. npm の Web サイトを表示して npm view versions version を実行すると、どのような状況になりますか?
# 第一次发布
$ npm publish
# 输出
...
npm notice Publishing to https://registry.npmjs.org/
+ [email protected]
# 新增 readme.md 文件后
$ npm version patch
# 输出
v0.0.2
# 这时查看版本列表
$ npm view create-captcha versions
# 输出 只有一个版本
0.0.1
npm版のみパッチを実行すると、オンラインパッケージが正常に更新されません。
更新を有効にする方法を教えてください。
引き続き npm 公式 Web サイトのドキュメントを確認すると、バージョンの更新操作が実行された後、新しいバージョンをリリースするために npm publish も必要であることがわかります。npm version patch/minor/major の 3 つのコマンドを実行した後、npm publish を実行して公開する必要があります。
# 微小版本更新,对应版本号v0.0.1 就是 v<major>.<minor>.<patch>, v微小更新.次要更新.主要更新
$ npm version patch
$ npm publish
$ npm version minor
$ npm publish
$ npm version major
$ npm publish
アップデートのリリース結果を表示
結果を表示するには、npmjs.com を開いて独自のパッケージを検索し、クリックしてバージョン番号を表示する方法と、ターミナルのコマンド ラインから表示する方法の 2 つがあります。
# 列出所有线上版本
$ npm view create-captcha versions
# 输出
[ '0.0.1', '0.0.2' ]
# 仅列出线上最新版本
$ npm view create-captcha version
# 输出
0.0.2
2. 開発プロジェクトの更新について npm update に依存
パッケージの更新版がリリースされた後、npm update を使用して、パッケージに依存するプロジェクトを更新しますが、更新が成功していないことがわかります。そのため、npm のドキュメントをもう一度確認して、理由を確認してください。
プロジェクトの依存関係のバージョン識別のさまざまな意味
私たちのプロジェクトの package.json には、異なる更新ルールに対応する、依存バージョンを識別するフィールドの表現方法が 3 つあります。
依存関係でも devDependencies フィールドでも、^ はメジャー バージョンが一貫していることを意味し、~ はマイナー バージョンを意味します。
"dependencies": {
"pkg1": "^1.2.3", // 安装大版本为1的latest最新版本
"pkg2": "~1.2.3", // >=1.2.3 <1.3.0,次要版本不能高,只更新补丁小版本
"pkg3": "1.2.3", // 具体版本
"pkg4": "^0.1.2" // 大版本低于1.0.0
"pkg5": "^0.0.1", // 大版本低于1.0.0
}
pkg1 は ^ でマークされ、同じメジャー バージョンの最新バージョンをインストールできます (>=1.2.3 <2.0.0);
pkg2 は ~ でマークされ、同じマイナー バージョンの最新バージョンをインストールできます (> =1.2.3 <1.3.0);
pkg3 には識別子がなく、特定の修正済みバージョン 1.2.3 のみをインストールできます。
特に、メジャーバージョンが 1.0.0 より前の場合、^ の役割はメジャーバージョンを制限することではなく、
pkg4 は ^ を使用して識別し、
pkg5 は ^ を使用して識別します. この場合、package.json のバージョン番号最初にのみ実行できます。
例としてReactバージョンを取り上げます
npm view react versions
反応のすべてのバージョンを表示するために使用します
反応バージョンのプルーニングを例に取ります
[
'0.0.1', '0.0.2', '0.0.3',
'0.1.2', '
0.2.0', '0.2.1', '0.2.6',
「0.3.0」、「0.3.4」、
「0.14.0」、「0.14.1」、「0.14.10」、「
15.0.0」、「15.0.1」、「
18.2.0」
]
新しいディレクトリを作成し、プロジェクトを初期化し、react の最小バージョンをインストールします。
$ mkdir test-react
$ cd test-react
$ npm init -y
$ npm i [email protected] -S
package.json で依存関係のバージョン番号を取得します
"dependencies": {
"react": "^0.0.1"
}
その後、更新してみてください
$ npm update react -S
# 输出 up to date, audited 2 packages in 34s
update コマンドは、package.json 内の 1.0.0 より前のバージョンの react を更新します。これは、それが既に最新バージョンであることを示しています。次に、package.json のバージョンを 0.0.2 に変更し、再度 update コマンドを実行します。
// package.json
"react": "^0.0.2"
// shell
$ npm update react -S
# 输出 changed 1 package, and audited 2 packages in 8s
反応の更新は正常に 0.0.2 に変更されました.バージョンが 1.0.0 よりも低い場合、^ 記号で識別されるバージョンは、それで識別されるマイナー バージョンにのみ制限できることがわかります。
もう一度変更してpackage.json
、マイナー バージョン 2 に対応するように変更します。つまり"react": "^0.2.0"
、更新を実行します。
$ npm update react -S
# 输出 added 3 packages, changed 1 package, and audited 5 packages in 11s
# 此时 node_modules目录有 ensure-array eventemitter2 react sprintf 四个目录
この時点で、package.json の依存関係が "react": "^0.2.6" に変更されていることを確認し、マイナー バージョン 2 で最新バージョンに更新し、次のバージョンは 0.3.0 です。バージョン番号リストをもう一度貼り付けて確認します。これにより、^ 記号が 1.0.0 よりも低い場合にどのように機能するかがわかります。
[
'0.0.1', '0.0.2', '0.0.3', '
0.1.2',
'0.2.0', '0.2.1', '0.2.6',
'0.3.0', ' 0.3.4'、
'0.14.0'、'0.14.1'、'0.14.10'、
'15.0.0'、'15.0.1'、'
18.2.0'
]
別の方法として、最新バージョンを再インストールして更新しますnpm i xxx@latest -S
自分でリリースしたパッケージに戻り、インストールコマンドを再実行することで依存関係を最新バージョンに更新することもできます。もちろん、react も同様です。試してみてください。
$ npm install create-captcha@latest -S
# 输出
changed 1 package, and audited 2 packages in 4s
バージョン識別を正しく使用するには?
-
新しいプロジェクトを開始するときは、通常、最新の依存パッケージをインストールして使用することをお勧めします. 結局、古いバージョンは徐々にメンテナンスを失います.
-
ただし、既存のプロジェクトで開発している場合は、依存バージョンがプロジェクトと互換性があることを確認する必要があり、本番サーバーにデプロイされたバージョンとの一貫性を高く保つことが最善です。および開発環境では、トラブルシューティングが非常に困難になります。
バージョンアップ結果を見る
npm list を使用して、現在のプロジェクトにインストールされているすべての依存関係のバージョンを表示します。
$ npm list
リリースパッケージを開発する場合でも、プロジェクトで依存関係を使用する場合でも、バージョンを明確に理解する必要があります. このステップをうまく行うことで、その後の開発プロセスで環境関連の問題を回避し、開発効率と幸福度を向上させることができます!