ホームページ > ウェブフロントエンド > jsチュートリアル > プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明

プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明

青灯夜游
リリース: 2021-04-25 10:08:27
転載
5041 人が閲覧しました

この記事では、プロジェクト内の Node 依存関係を検出してアップグレードする方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明

現代のフロントエンド開発では、プロジェクトは多くのサードパーティ パッケージ (数十、場合によっては数百) に依存することがよくあります。依存関係が問題になっています。 [関連する推奨事項: "nodejs チュートリアル "]

npm outdated と npm update


幸いなことに、npm は npm outdated と npm update を提供します。 npm update これら 2 つのコマンド。

古い反応プロジェクトを入力し、npm outdated を実行すると、予想通り、アップグレードの提案が表示されます。

プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明

次に、npm update を実行してアップグレードします。応答なし ???

--help を見たところ、姿勢が間違っているのではないでしょうか? npm updateless を試してください。応答なし 1

npm updateless --save を試行し続けますが、応答はありません。

写真に表示されている Wanted は Wanted に属していますが、最新のものにアップグレードしたいです

そこで、npm update を通じて詳細なログを確認しました - -dd、最後に次のようなプロンプトが常に表示されることがわかりました:

プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明

アップグレードの見込みはないようです。作者はこれがプロジェクトの安定性のためではないかと考えていますか?結局のところ、メジャー バージョン間でのアップグレードは依然として非常に危険です。しかし、マイナー バージョンがアップグレードされないのは意味がありません。

どうやら npm update は絶望的のようです。

ということで、ncu が登場です!

神器ncu


ncunpm-check-updates で、検出と更新が可能ですpackage.json 内の依存パッケージは、最新の latest バージョンです。使い方を見てみましょう。

最初のステップは、依存関係パッケージ npm install -g npm-check-updates をインストールすることです。もちろん、インストールせずに npx# を使用することもできます。 ## を実行して、ここではグローバル インストール方法を使用します。

インストールが完了したら、

npm-check-updates を介してコマンドを実行することも、ncu を介してすぐに実行することもできます。

#アップグレード可能な依存関係パッケージの検出

現時点ではまだ古い反応プロジェクトです。アップグレード検出のために

ncu

を実行します:

プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明えーっと!見た目がより明確になり、アップグレードできる最新バージョンが直接表示されます。ここでのスクリーンショットは一部にすぎず、リストは非常に長いです...しかし、これは大きな問題ではありません。結局のところ、

ncu

はワンクリックでアップグレードできるのです。

ワンクリック アップグレード

ncu

はワンクリック アップグレード用のコマンド パラメータ -u を提供し、実行します。 ncu -u で十分です。 実行後の出力情報は長く、最後の文のみが選択されます:

Run npm install to install new versions.
ログイン後にコピー

これは、人々が疑うほど鮮明で明確です。次に、

package.json

にアクセスして確認してみると、これは強力なものであることがわかり、アップグレードできる人は全員最新バージョンにアップグレードされます。

ワンクリック アップグレードを実行するときは注意が必要です。結局のところ、
ncu -u

はバージョン間の互換性の問題を考慮しません。メジャー アップグレードを実行すると、一部のパッケージに互換性がなくなる可能性があります。バージョンのアップグレード。ここで注意する必要があります。コードを変更する準備をしてください。

グローバル パッケージ検出、オンデマンド検出

もちろん

ncu

グローバルにインストールされたパッケージを検出することもできます。 を実行します。 ncu - g で十分です:

プロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明それだけでなく、単一のパッケージを検出する必要がある場合、またはパッケージを無視する必要がある場合は、これで問題ありません。 ncu ウェアハウスによる使用例:

# upgrade only mocha
ncu mocha
ncu -f mocha
ncu --filter mocha

# upgrade packages that start with "react-"
ncu react-*
ncu "/^react-.*$/"

# upgrade everything except nodemon
ncu \!nodemon
ncu -x nodemon
ncu --reject nodemon

# upgrade only chalk, mocha, and react
ncu chalk mocha react
ncu chalk, mocha, react
ncu -f "chalk mocha react"

# upgrade packages that do not start with "react-".
ncu \!react-*
ncu '/^(?!react-).*$/' # mac/linux
ncu "/^(?!react-).*$/" # windows
ログイン後にコピー

設定ファイルモード

コマンドラインで各種フィルタ条件を入力するのが面倒な場合は、こちらの方が便利ですこれを使用する方法は、

.ncurc.json

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">{ &quot;upgrade&quot;: true, &quot;reject&quot;: [&quot;webpack&quot;, &quot;antd&quot;] }</pre><div class="contentsignin">ログイン後にコピー</div></div> のような構成ファイルを作成することです。構成可能なフィールドの説明:

    upgrade
  • : ワンクリック アップグレードが必要ですか?
  • #filter
  • : どのモジュールのみをアップグレードするか
  • reject
  • : どのモジュールを無視するか
  • もちろん、設定ファイルの名前は任意です。たとえば、デフォルトのルーチンの名前は
.ncurc.{json,yml,js}

です。または、ファイル名をカスタマイズし、--configFileName および --configFilePath を使用してファイルを指定します。 <h3 data-id="heading-6"><strong>API 调用</strong></h3><p><code>ncu 还对外暴露了 API,我们可以通过编程的方式检测并升级某个项目的依赖包。使用示例如下:

const ncu = require(&#39;npm-check-updates&#39;);

(async () => {
  const upgraded = await ncu.run({
    // Pass any cli option
    packageFile: &#39;./package.json&#39;,
    upgrade: true,
    // Defaults:
    // jsonUpgraded: true,
    // silent: true,
  });

  console.log(upgraded); // { "mypackage": "^2.0.0", ... }
  // `upgrade: false`:返回可升级的包及最新版本信息
	// `upgrade: true`:返回已经升级的包及最新版本信息
})();
ログイン後にコピー

目前,我们的脚手架里就用到了这个特性,通过脚手架来对项目依赖进行升级。

OK,以上就是关于 Node 依赖检测并升级的全部内容,你开始用 ncu 了吗?

更多编程相关知识,可访问:编程入门!!

以上がプロジェクト内のノードの依存関係を検出してアップグレードする方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート