windowsシステムの下でnpmアップグレードの正しい姿勢と原理
5913 ワード
本文は網易雲コミュニティから来ます.
作者:陈観喜
インターネット上ではnpmのアップグレードについて様々な方法がありますが、windowsシステムでは、どの方法も正しくアップグレードされます.その中でwindowsシステムの下で主なアップグレード方法は以下の3つがあります.まず暴力的な方法でnodejsとnpmを削除して、公式サイトでDownloadの最新のmsiを削除して、msiのインストールはあなたのnodeとnpmを更新します. は次にnpm install-g npmを利用します.この方法はネット上で多くの人が使う方法ですが、この方法は潜在的な問題があります.以下に紹介します. 最後にnpm-windows-up gradeを利用してアップグレードします.How can I udate npm on Windowsを参照してください.管理者権限でPowerShellを開いて、次のコマンドを実行します.
準備工作 windowsの下のアナログ端末:powershellを使用することを推奨します.本人が試したgit bashとミニティ端末シミュレータはnpm命令を実行する時問題があります.この二つの端末が実行する原理に興味があります. 3つの方法の比較
1.nodejsをアップグレードしてアップグレードする
この方法はnodejsとnpmを削除して最新のnodeをダウンロードしてインストールすればいいです.npmを削除する場合は、NODEJSディレクトリのnpmフォルダとAPPDATAのRomingディレクトリの下のフォルダのnpm、npm-cacheフォルダをきれいに削除する必要があります.
(NODEJSディレクトリとは、あなたがnodejsをインストールしたディレクトリのことです.デフォルトはC:\Program Filesodejs、APPDATAのRomingディレクトリとは、C:\Users\Appdata\Roming、本人のAPPDATAディレクトリはC:\Users\chenguxi\Appdata\Romingを指します.APdowsは常に別のアプリケーションのユーザーディレクトリに設定されています.APPDATAディレクトリの用途はWhat Is the ApData Folder in Windowsを参照しますか?
2.npm install-g npm方法(ポイント紹介)
この方法を実行する前に、まず私の今のnodeとnpmバージョンを見てください.
NODEJSディレクトリで対応するnpmディレクトリ(C:\Program Filesodejsodem)のpackage.jsonファイルを開きます.
まだ5.6.0
APPDATA経路のnpmディレクトリ(C:\Users\chenguxi\Appdata\Romingpm)を開くと、ここで新たにnpmが追加されたことが分かります.そのpackage.jsonファイルを開くと、次のようになります.
端末の下でnpm-vを実行すると、APPDATAディレクトリnpmのバージョン結果が得られます.npmコマンドを実行するときは、どのnpmを実行しますか?
上の図から得られた結果は、どの経路のnpmを実行しても同じです.もう一歩深くして、まずNODEJSディレクトリのnpmがどのように実行されているか見てみます.npm.cmdファイルを開けて、このファイルが何を実行しているかを確認してください.
npm命令実行原理:
npm.cmdファイルにロゴを入れて関連変数を見ます.
npm-vを実行して得られた結果:%~dp 0はバッチファイルにしか使えません.バッチファイルのディレクトリ位置によって決められています.バッチファイルがあるディスクです.+パス、 は、npm-cli-jsファイルをバッチファイル処理のディレクトリに対応するnpm-cli.jsファイルのキーを設定します.「%NODE uEXE%」「% NPMuCLI JS%」prefix-gというコマンドを実行します.つまり、npm prefix-gというコマンドです.次にNPM_を設定しますPREFIX_NPM_CLI_JSという変数は、NPM_があればPREFIX_NPM_CLI_JSは、npm-cli.jsをNPM_に設定します.PREFIX_NPM_CLI_JSディレクトリのnpm-cli.jsファイル 最後にnode.exe{対応する}ode_を実行します.modulespm\binpm-cli.js npm prefix-gこのコマンドは、以下の結果を得ました.C:\Users\chenguxi\アプリData\Romingpmの具体的なコマンドの実行過程は、prefixの構成を読み取って構成の結果を出力します.オープンC:\Program Filesodejsode_modulespmディレクトリのnpmrcファイルには、1行のみのコードprefix={APPDATA}pm が表示されます.ドル{APPDATA}は、node環境下のプロcess.env.APPDATA変数 を意味します.結果は、C:\Users\chenguxi\Appdata\Roming です.
まとめ:
npmコマンドを実行すると、実際にnode${対応}/npm-cli.jsというコマンドが実行されます.鍵はどのnpm-cli.jsファイルですか?全体の実行プロセスは、どのnpm-cli.jsファイルを実行するかを判断することである.つまり、グローバルprefixが存在する場合は、グローバルprefixでnpm-cli.jsファイル を実行する.つまりnpmコマンドを実行するということは、実行です.modulespm\binpm-cli.js 以上のように、npmコマンドは、nodejsディレクトリのnpmコマンドを実行します.npmがどのように実行されているかを確認した後、npm install-g npmというコマンドを実行しているかを知ることができます.実はグローバル環境のnpmパッケージをダウンロードしてインストールし、prefixという設定でグローバル環境下のnpm-cli.jsファイルにリンクしています.このプロセスはNODEJSディレクトリのnpmバージョンを変更することはありません.したがって、潜在的な問題は、prefix構成が修正された後、npmが実行する環境は未知であり、このようなグローバルnpmパケットにリンクされたプロキシ方式によってnpmをアップグレードすることは推奨されない.
3.npmアップグレードの正しい姿勢はnpm公式のオススメの方法であるべきです.
How can I udate npm on Windowsを参照してください.
管理者権限でPowerShellを開き、次のコマンドを実行します. C:\sers\chengudxi\アプリData\Romingpmpm-windows-uplaye.cmd C:\sers\chenguxi\アプリData\Romingpmode_modulespm-windows-up grade\binpm-windows-up grade.js C:\sers\chenguxi\アプリData\Romingpmode_modulespm-windows-up grade\lib\up grader.js つまりnpm-windows-up gradeを実行すると、npmをアップグレードしている正しいディレクトリを自動的に見つけて、既存の構成を保護して再適用して、最終的にnpm install-g npmを呼び出します.
締め括りをつける
以上のように、windowsシステムの下でnpmをアップグレードする一番いい方法はnpm-windows-up gradeを使ってアップグレードします.このように保護し、既存の配置に再適用できます.潜在的な問題を避けられます.以上の実験過程を通して、以下の知識点のまとめがあります. npmコマンドは、node npm-cli.jsコマンドにより実現される です. windowsシステムでは、npmのグローバルパッケージ管理環境とnodeディレクトリは別の です.
以上に間違いがあります.ご指摘をお願いします.
参考: How can I udate npm on Windows? What does%~dp 0 mean,and how does it work? What Is the ApData Folder in Windows? npm wiki:Trouble shoting windowsバッチ処理(cmd/bat)プログラミング詳細 網易雲無料体験館、0コストで20種類の雲商品を体験します.
より多くの網易の研究開発、製品、運営経験を共有し、網易雲コミュニティを訪問してください.
地図投影の学问について话します.マイクロサービス监视の探索
作者:陈観喜
インターネット上ではnpmのアップグレードについて様々な方法がありますが、windowsシステムでは、どの方法も正しくアップグレードされます.その中でwindowsシステムの下で主なアップグレード方法は以下の3つがあります.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Forcenpm install -g npm-windows-upgradenpm-windows-upgrade
では、第3の方法が推奨されています.これもnpmチームの公式推奨の使い方です.準備工作
1.nodejsをアップグレードしてアップグレードする
この方法はnodejsとnpmを削除して最新のnodeをダウンロードしてインストールすればいいです.npmを削除する場合は、NODEJSディレクトリのnpmフォルダとAPPDATAのRomingディレクトリの下のフォルダのnpm、npm-cacheフォルダをきれいに削除する必要があります.
(NODEJSディレクトリとは、あなたがnodejsをインストールしたディレクトリのことです.デフォルトはC:\Program Filesodejs、APPDATAのRomingディレクトリとは、C:\Users\Appdata\Roming、本人のAPPDATAディレクトリはC:\Users\chenguxi\Appdata\Romingを指します.APdowsは常に別のアプリケーションのユーザーディレクトリに設定されています.APPDATAディレクトリの用途はWhat Is the ApData Folder in Windowsを参照しますか?
2.npm install-g npm方法(ポイント紹介)
この方法を実行する前に、まず私の今のnodeとnpmバージョンを見てください.
$ node -v
v8.11.3$ npm -v5.6.0
次にnpm install-g npmを実行すると、以下の結果が得られる.$ npm -v
6.4.1
アップグレードが成功したようです.ちょっと見てみます.本当ですか?nodejsディレクトリのnpmアップグレードが成功しました.NODEJSディレクトリで対応するnpmディレクトリ(C:\Program Filesodejsodem)のpackage.jsonファイルを開きます.
まだ5.6.0
APPDATA経路のnpmディレクトリ(C:\Users\chenguxi\Appdata\Romingpm)を開くと、ここで新たにnpmが追加されたことが分かります.そのpackage.jsonファイルを開くと、次のようになります.
端末の下でnpm-vを実行すると、APPDATAディレクトリnpmのバージョン結果が得られます.npmコマンドを実行するときは、どのnpmを実行しますか?
上の図から得られた結果は、どの経路のnpmを実行しても同じです.もう一歩深くして、まずNODEJSディレクトリのnpmがどのように実行されているか見てみます.npm.cmdファイルを開けて、このファイルが何を実行しているかを確認してください.
npm命令実行原理:
npm.cmdファイルにロゴを入れて関連変数を見ます.
npm-vを実行して得られた結果:
'~dp0: ' C:\Program Files
odejs\'NODE_EXE: ' C:\Program Files
odejs\
ode.exe'NPM_CLI_JS: ' C:\Program Files
odejs\
ode_modules
pm\bin
pm-cli.js'NPM_PREFIX_NPM_CLI_JS: ' C:\Users\chenguanxi\AppData\Roaming
pm
ode_modules
pm\bin
pm-cli.js'NPM_CLI_JS: ' C:\Users\chenguanxi\AppData\Roaming
pm
ode_modules
pm\bin
pm-cli.js'npm command ===:' C:\Program Files
odejs\
ode.exe C:\Users\chenguanxi\AppData\Roaming
pm
ode_modules
pm\bin
pm-cli.js6.4.1
重要な注釈(具体的な命令はwindowsバッチ処理(cmd/bat)のプログラミング詳細を参照):まとめ:
npmコマンドを実行すると、実際にnode${対応}/npm-cli.jsというコマンドが実行されます.鍵はどのnpm-cli.jsファイルですか?
3.npmアップグレードの正しい姿勢はnpm公式のオススメの方法であるべきです.
How can I udate npm on Windowsを参照してください.
管理者権限でPowerShellを開き、次のコマンドを実行します.
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Forcenpm install -g npm-windows-upgradenpm-windows-upgrade
npm-windows-up gradeの実行過程:1. ensureExecutionPolicy: powershell 2. ensureInternet: 3. chooseVersion: npm 4. choosePath: npm 5. upgrade: npm , , npm install -g npm
詳しい過程に興味があるのはソースファイルを開けてみてもいいです.主に以下の三つのファイルです.締め括りをつける
以上のように、windowsシステムの下でnpmをアップグレードする一番いい方法はnpm-windows-up gradeを使ってアップグレードします.このように保護し、既存の配置に再適用できます.潜在的な問題を避けられます.以上の実験過程を通して、以下の知識点のまとめがあります.
以上に間違いがあります.ご指摘をお願いします.
参考:
より多くの網易の研究開発、製品、運営経験を共有し、網易雲コミュニティを訪問してください.
地図投影の学问について话します.マイクロサービス监视の探索